精彩牛耳,用心缔造
您的位置:主页 > 牛耳资讯中心 > 行业资讯 >

浅析Java三大特性之多态

作者:牛耳教育 编辑:陈老师 来源:未知 发布日期:2022年01月16日
信息摘要:
众所周知,Java有三大特性,封装,继承,多态,封装解决了数据的安全性问题,封装解决了代码的重用问题,多态解决了程序的扩展问题,今天我们就来剖析java基础核心机制之多态,了解什么是多...

众所周知,Java有三大特性,封装,继承,多态,封装解决了数据的安全性问题,封装解决了代码的重用问题,多态解决了程序的扩展问题,今天我们就来剖析java基础核心机制之多态,了解什么是多态,以及多态的类别以及构成动态多态的条件.

要理解多态,不妨我们来举一个例子,比如我们家养了一只宠物,它的名字叫毛毛,根据这段信息来看的话并不能得出这只毛毛是个什么动物,但是如果说它是发出喵喵喵的叫声,那么根据这个信息我们不难判断毛毛是一只猫咪,如果说它是汪汪的叫那么也很容易判断出它是一只宠物狗,所以从上述例子可以看出,要从普通类型中具体判断某种特殊类型的话,必须根据其行为或者特征来判断它具体属于哪种类型,其实这种就是多态.多态就是同一方法,展现不同形态,多态的本质就是将子类对象赋值给父类变量,在运行时期会表现出具体的子类特征(调用子类的重写方法),这里我们的提到几个概念:

一、什么是方法覆盖及方法覆盖override与方法重载(overload)的区别override

概念:又叫方法重写,在子类中有和父类同原型的方法(方法原型:返回值类型+方法名字+形参列表)时,

创建子类对象并调用该方法,会覆盖父类的同原型方法,

执行子类的方法,表现子类特征

原则:

1.必须是在继承的关系下才能产生方法覆盖

2.子类的方法原型(包括:返回值类型、方法名、参数)与父类保持一致

3.子类方法的访问权限不得低于父类的访问权限

4.子类方法抛出的异常不得低于父类方法抛出的异常

方法重载和方法重写区别:【面试题】

方法重载(Overload) 方法重写(Override)

是否需要继承:    无关                 必须继承

返回值类型:  无关           必须相同

方法名: 必须相同       必须相同

形参列表:     必须不同       必须相同

二、什么是引用转型

向上转型:父类的引用指向子类的实例(安全)

Person p = new Student();

向下转型:不安全

Student s = (Student)new Person();

使用instanceof运算符判断 前一个对象是否是后面的类或者其子类,如果是返回true否则返回false

语法:  if(对象名instanceof类名){

}

三、什么是多态

概念:多种形态(实现多种功能) 方法实现功能

即:同一函数(方法),不同形态(继承、方法重写、父类的引用指向子类的实例)

通俗:父类的引用指向哪个子类的实例,就调用哪个类中的重写方法。

得到不同的结果,即同一种方法,多种形态,这就是多态

两种类型:

1、静态多态(编译时多态):

程序在编译时就知道调用哪个方法

方法重载

2、动态多态(运行时多态):

程序在运行时才知道调用哪个方法

方法重写

产生动态多态的条件:

a.有继承

b.有方法重写

c.父类的引用指向子类的实例

本质:多态的本质就是将子类对象赋值给父类变量,在运行时期会表现出具体的子类特征(调用子类的重写方法)。

例如:我家里养了一只动物,叫乖乖..

乖乖是狗  发了了汪汪的叫声

是猫   发了喵喵..



牛耳推荐资讯
湖南工程学院计算科学与

湖南工程学院计算科学与

【产教融合育人才校企合作谋发展】湖南工程学院计算科学与电子学院与牛耳科教集团签约共建实习基地...
2022年11月30日
嵌入式学习路线怎么规划

嵌入式学习路线怎么规划

随着人工智能领域的兴起和发展,嵌入式开发技术也随之受到关注。近几年,学习嵌入式开发的学生越来越多,有的选择自学,有的选择去培训班。不管做...
2022年11月30日
Web前端框架有哪些?哪个

Web前端框架有哪些?哪个

Web前端框架是前端开发中一个非常重要的开发工具。功能强大的框架可以让前端人员更加清晰的看见现有代码的结构,也能快速检查一些代码错误,极大的...
2022年11月30日
软件测试培训多少钱?学

软件测试培训多少钱?学

目前市面上软件测试培训的费用大概在0.8-2.3万之间,为什么费用差别会这么大?影响因素有很多,主要是课程内容、上课方式、地理位置等。...
2022年11月28日
为什么要学习软件开发?

为什么要学习软件开发?

随着时代的进步,国家的发达,信息时代的到来,对于软件开发的需求也越来越大了!普遍性的需要,那么什么是软件开发?...
2022年11月25日
 牛耳教育的教学模式是怎

牛耳教育的教学模式是怎

牛耳教育采取独特的“企业化管理”的教学模式,从专业技能、项目能力和职业素质三方面帮助学生全面提升职业竞争力,完善的软件人才培养体系基础上,同时拥有完善的软件人才考...
2022年11月22日

咨询热线

400-0731-162