【Java学习笔记】父类引用指向子类对象时方法的调用
来源:互联网 发布:最近很火的网络歌曲女 编辑:程序博客网 时间:2024/06/13 01:47
首先,定义几个类
class Father{ public void show(A a){ System.out.println("Father and A"); } public void show(D d){ System.out.println("Father and D"); }}class Child extends Father{ public void show(A a){ System.out.println("Child and A"); } public void show(C c){ System.out.println("Child and C"); }}class A{}class B extends A{}class C extends B{}class D extends C{}
下面我们写一些方法来验证一下:
public class Test { public static void main(String[] args) { Father f1 = new Father(); Father f2 = new Child(); f1.show(new A()); //Father and A f1.show(new B()); //Father and A f1.show(new C()); //Father and A f1.show(new D()); //Father and D f2.show(new A()); //Child and A f2.show(new B()); //Child and A ** f2.show(new C()); //Child and A ** f2.show(new D()); //Father and D }}
应该就打星号的稍微难理解:
1)f2.show(new B())
Father类里的show方法参数是由A和D,所以B要向上转型为A,然后由于子类Child重写了show(A a)方法,所以调的是子类的这个方法
2)f2.show(new C())
别看子类有show(C c)方法,调不到有什么用,C先转型为B,但是找不到方法,再转型为A,然后调用的还是子类重写的方法
总的来说,像Father f = new Child()这种语法,f可用的方法就是Father的方法,但是如果Child重写了,果断用重写的,Child独有而Father没有的方法是不允许调用的
阅读全文
0 0
- 【Java学习笔记】父类引用指向子类对象时方法的调用
- Java 父类引用指向子类对象
- java父类引用指向子类对象
- java父类引用指向子类对象
- java 父类引用指向子类对象
- java父类引用指向子类对象
- 【Java学习笔记】父类引用指向子类对象之属性
- Java父类引用指向子类对象的简单理解
- java学习笔记:java的多态,子类和父类的相互转换,父类引用指向子类的对象
- 父类的引用指向子类对象
- 父类的引用指向子类的对象怎么调用子类的方法
- 父类引用指向子类对象,为什么会调用的是子类中重新的方法
- Java父类对象引用指向子类对象
- Java 中深层理解父类引用指向子类对象
- java多态,如何理解父类引用指向子类对象
- Java 中深层理解父类引用指向子类对象
- Java多态--父类引用指向子类对象
- java中protected 继承 父类引用指向子类对象
- mysql
- Java代码块
- 手把手教学java微信公众号模版消息开发
- Deep哈希算法介绍
- 随笔
- 【Java学习笔记】父类引用指向子类对象时方法的调用
- 页面的五种布局以及嵌套(旧的基础知识)
- TCP协议
- Easy UI运行于Tomcat服务器
- Solidity学习(3)
- 九周第四次课 2017.12.14 LAMP架构介绍、MySQL、MariaDB介绍、MySQL安装
- MySQL简单语法(图片)
- 获取bash文件所在的目录绝对路径以及获取函数方法名称
- 分析微信数据及可视化