「java面向对象多态」面向对象编程多态性

博主:adminadmin 2022-12-21 22:48:06 64

今天给各位分享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面向对象多态的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-21,除非注明,否则均为首码项目网原创文章,转载请注明出处。