「java面向对象多态」面向对象编程多态性
今天给各位分享java面向对象多态的知识,其中也会对面向对象编程多态性进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
什么是面向对象中的多态?在Java中有哪些实现方式?
多态是指若干个属于不同类的对象实例,对于同一个消息(如方法调用)做出的不一样的应答方式。
JAVA多态性的实现主要有:继承多态、抽象多态、接口多态。
北大青鸟设计培训:Java面向对象的四个特征?
1.抽象:抽象——就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
(就是把现实世界中的某一类东西,提取出来,用程序代码表示,抽象出来一般叫做类或者接口。
)抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
广州java培训认为抽象包括两个方面,一是数据抽象,二是过程抽象。
数据抽象——就是用代码的形式表示现时世界中一类事物的特性,就是针对对象的属性。
比如建立一个鸟这样的类,鸟都有以下属性:一对翅膀、两只脚、羽毛等。
抽象出来的类都是鸟的属性,或者成员变量。
过程抽象——就是用代码形式表示现实世界中事物的一系列行为,就是针对对象的行为特征。
比如鸟会飞、会叫等。
抽象出来的类一般都是鸟的方法。
2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
因此可以说,继承是为了重用父类代码,同时为实现多态性作准备。
3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据。
4.多态性:多态性是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
总的来说,方法的重写、重载与动态链接构成多态性。
Java引入多态的概念原因之一就是弥补类的单继承带来的功能不足。
(为规避C++中多继承造成的复杂继承问题,java采用单继承。
)动态链接——对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将会调用子类中的这个方法,这就是动态链接。
注意:继承与重载:一是子类与父类的关系,二是重载方法的调用问题。
子类对象可以直接当成父类对象使用,但反过来就不可以。
举例来说,人是父类,学生是人的子类,所以学生对象一定具备人对象的属性,但是人对象就未必具有学生对象的特性。
所以学生对象可以当做人对象来使用,但是人对象就不能当做学生对象使用。
注意当把子类对象当成父类对象使用时,子类对象将失去所有的子类特性,只保留与父类同名的属性和方法(同名方法不仅是函数名相同,而且参数类型也要一样,否则不予保留)。
此时可以对父类方法进行重写。
一个类中如果定义了重载的方法,则系统在调用方法时,会根据参数的类型自动选择调用合适的方法。
java面向对象编程的多态
A ab=new B(),这叫父类引用指向子类对象,对象的实际类型是B类,在引用ab上调用方法,JVM将能够确定具体需要调用哪个方法,即如果B类重写了A类的同名方法那么将调用B类的方法,这叫多态。调用ab.show(b),由于ab是A类对象,编译器只能看到A类中存在的方法,即show(D obj)和show(A obj),前一个类型不符无法调用,后一个可通过向上转型将b视为A类对象调用,因此调用的是show(A obj),而这个方法在B类中有重写,那么实际调用的就是B类中的show(A obj)方法。
java面向对象多态的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于面向对象编程多态性、java面向对象多态的信息别忘了在本站进行查找喔。
发布于:2022-12-21,除非注明,否则均为
原创文章,转载请注明出处。