关于Java 多态的理解及案例
来源:互联网 发布:收银台软件 编辑:程序博客网 时间:2024/05/17 01:47
package February;public class QQ{public static void main (String[]args){A a1 = new A();A a2 = new B();B b = new B();C c = new C();D d = new D(); /** * 实例化对象 a1: * 此时传入值时,找到对象参数的构造方法调用,当没有对象的方法时,依次寻求值得 本质,即传入值为c时,先找到B,然后才找到A *//** * 实例化对象a2: * A a2 = new B();实例化对象时,A a2存储在栈中,new B();存储在堆中;当调用方法时优先调用对象A中的方法,在A中不存在时在 B中寻求(除了被覆盖 的方法) *//** * 实例化对象b: * 由于继承了A,当B中没有相关方法时,会去A中寻找,如果A中没有的话,会遵循以下优先级原则 * *//** * 多态机制遵循的原则概括为: * 当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法, * 但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法,但是它仍然要根据继承链中方法调用的优先级来确认方法, * 该优先级为:this.show(O)、super.show(O)、this.show((super)O)、super.show((super)O)。 */System.out.println(a1.show(a2));System.out.println(a1.show(b)); System.out.println(a1.show(c)); System.out.println(a1.show(d)); System.out.println(a2.show(a1));System.out.println(a2.show(b)); System.out.println(a2.show(c)); System.out.println(a2.show(d)); System.out.println(b.show(b)); System.out.println(b.show(c)); System.out.println(b.show(d));}} class A {public String show(D obj){return ("A and D");}public String show(A obj){ return ("A and A"); } public String show(B obj){ return ("B and B"); } }class B extends A{ public String show(B obj){ return ("B and B"); } public String show(A obj){ return ("A and B"); } } class C extends B{} class D extends B{}
阅读全文
1 0
- 关于Java 多态的理解及案例
- Java关于多态的初步理解
- 关于java多态的理解
- java关于多态的一些理解
- 关于Redis简介及Window下的分片集群java案例(二)
- 关于Redis简介及Window下分片集群的Java案例(三)
- 关于java继承与多态的深入理解
- java笔记--day09--关于多态的两个案例(猫狗和老师学生)
- Java中多态转型的问题理解及多态概述
- java多态的理解及深入认识
- 关于java.lang.UnsatisfiedLinkError的小案例
- 关于java.lang.UnsatisfiedLinkError的小案例
- 关于Python递归案例——汉诺塔的理解
- java中常见的异常及案例
- 关于多态的理解
- 关于多态的理解
- 关于多态的理解
- 关于多态的理解
- 我读《启示录.打造用户喜爱的产品》 Marty Cagan著
- Daily Temperatures问题及解法
- cmakelist 草稿一
- JFS简介
- 2141-数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历
- 关于Java 多态的理解及案例
- 大雪来了,怎么样才能暖到心窝里?
- 1060. 爱丁顿数(25) PAT乙级真题
- Linux:进程间通信方式
- Linux网络编程-UDP
- 使用java通过串口打电话
- 学会一种数据结构二:队列的数组实现和链表实现
- HDU 2492 Ping pong(树状数组)
- 数学黑洞