Java多态

来源:互联网 发布:windows打开tar文件 编辑:程序博客网 时间:2024/05/29 13:16

多态的实现机制是:重载和重写。

(1)重载:同一个类中有多个参数不同的同名方法,在编译时就已经确定该用哪个方法了,即编译时多态。

(2)重写:子类重写父类的方法,在某些情况下表现运行时多态。(就是以下说的情况)

(3)关于继承:子类只能继承父类中的public 、protected成员和方法。


1、多态:相同类型的变量调用同一个方法时表现出不同的行为特征,即编译时期和运行时期的情况不一样。

2、多态实现:继承父类并重写其中的一些方法。

3、Personname, eat(),drink()成员和方法,子类Man中有name,并重写eat talk方法;

对于 Person m=new Man()

(1)成员变量不具有多态性m.name实际上是person中的name

(2)重写的方法表现多态m.eat执行的是man中的方法

(3)调用父类中不存在的方法,编译期发生异常,m.talk编译不通过。因为引用变量在编译时只能调用其编译类型所具备的方法,在编译期m还是Person类型,这里Person不具备talk方法。

(4)下面例子非常重要:



4.向上转型:子类->父类 总是成功;向下转型:父类->子类,可以先通过instanceof来判断

5.重写某些对象的equals方法时一般调用getClass()方法而不是instanceof关键字,因为getClass判断是否为同一个类,instanceof相同类或前者是后者子类

6.封装、继承、多态是面向对象的三个基本特征。


原创粉丝点击