码迷,mamicode.com
首页 > 编程语言 > 详细

Java的多态

时间:2020-02-13 18:55:48      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:引用   有一个   java   否则   关系   类对象   哪些   总结   block   

Java的多态

多态的概念

多态:实际类型确定,引用类型不确定,表现出来了多种状态,就是多态。

调用相同名字的方法,具体采用的是哪个方法,根据发送对象的不同而采用多种不同的行为方式,就是多态。

多态使程序更灵活。

比如:父类是Person,子类是Student,当:

Student s1 = new Student();

Person s2 = new Student(); //父类的引用指向子类

Object s3 = new Student(); //父类的引用指向子类

即:一个对象的实际类型是确定的,就是Student

但是,引用类型有指向Student的,有指向Person的,有指向Object的,引用类型不同。所以表现出了多种状态。

多态的注意事项

  1. 多态是方法的多态,属性没有多态。

  2. 父类和子类之间才有多态。当没有父子关系时,提示ClassCastExpection!异常。

  3. 存在条件:有继承关系,方法需要重写,父类引用指向子类对象(反过来不行,只能父类指向子类)。Father f1 = new Son();

多态的方法调用

  1. 一个对象的实际类型是确定的

1.1. new Student();

1.2. new Person();

  1. 可以指向的引用类型不确定:父类的引用可以指向子类

  1. Student(子类)能调用的方法是自己的,或者继承父类的

  2. Person(父类)和Object(父类)可以指向子类,但不能调用子类独有的方法。

         5. 第一句话:换句话说,对象能执行哪些方法,看对象左边的类型,与右边的关系不大。

             第二句话:对象执行的某一方法是类里面的方法,看等号右边,与前面相反。

             解释下5中第一句话:子类有一个方法,父类没这个方法,父类 对象 = new 子类();则,该对象不能调用父类没有,子类有的这个方法。否则报错:

下面这个看等号左边

技术图片

             解释下5中第二句话:子类有一个方法,父类没这个方法,父类 对象 = new 子类();则,该对象不能调用父类没有,子类有的这个方法。否则报错:

下面这个看等号右边

技术图片

总结一句话:有没有方法看等号左边,执行哪个方法看等号右边(是否重写)

 

Java的多态

标签:引用   有一个   java   否则   关系   类对象   哪些   总结   block   

原文地址:https://www.cnblogs.com/WZ-BeiHang/p/12304512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!