JAVA多态问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

JAVA多态问题

2016-03-25 14:54:48 1545 1
public class Test1{
public static void main(String arg[]){

        A a1 = new A();
    A a2 = new B();
    B b = new B();
    C c = new C();
    D d = new D();
    System.out.println(a1.show(b));   
    System.out.println(a1.show(c));   
    System.out.println(a1.show(d));   
    System.out.println(a2.show(b));   
    System.out.println(a2.show(c));   
    System.out.println(a2.show(d));   //A-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");
}
}
class B extends A{
public String show(A obj){
       return ("B and A");
}
public String show(B obj){
    return ("B and B");
}
}
class C extends B{
 public String show(C obj){
     return ("C and C");
  }
  public String show(B obj){
         return ("B and C");
  }
}
class D extends B{
 public String show(D obj){
     return ("D and D");
  }
  public String show(B obj){
         return ("B and D");
  }
} 

A and A
A and A
A and D
B and A
B and A
A and D
B and B
B and B
A and D
为什么第4个输出不是B and B而是 B and A明明入参就是B类

取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 19:14:24

    如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。
    类A中的方法show(A obj) 跟类B中的方法show(B obj)因为参数不同(虽然是有继承关系,但也必须是相同才行),
    所以类B中的这个方法并不是对类A中方法的重写,它们之间并没有关系。
    A a2 = new B();这样定义的a2对象,只有show(D obj)show(A obj)方法,并且类B中的show(A obj)方法对A中的show(A obj)方法重写了,我们在调用的时候,就会走类B中的show(A obj)方法,所以输出是B and A

    0 0
相关问答

1

回答

java的多态存在的必要条件是什么?

2021-11-15 14:27:20 125浏览量 回答数 1

1

回答

Java中,多态的必要条件是什么?

2021-10-20 15:37:37 172浏览量 回答数 1

0

回答

请问java中使用BigDecimal计算操作性能最优的做法是什么?

2021-11-07 15:42:19 192浏览量 回答数 0

1

回答

java性能问题:有没有比较字符串是否相等的最快方法?

2021-11-06 16:21:40 147浏览量 回答数 1

0

回答

您好java性能问题:有没有比较字符串是否相等的最快方法?

2021-11-07 00:39:14 125浏览量 回答数 0

1

回答

java性能问题:如何优化向HashMap插入元素的速度?

2021-11-06 15:41:34 196浏览量 回答数 1

0

回答

请问java性能问题:如何优化向HashMap插入元素的速度?

2021-11-12 17:18:18 120浏览量 回答数 0

0

回答

请问java中常用的性能调优诊断工具都有哪些,请帮忙提供一下?

2021-11-06 22:35:44 69浏览量 回答数 0

1

回答

java中使用BigDecimal计算操作性能最优的做法是什么?

2021-11-06 16:35:15 211浏览量 回答数 1

1

回答

java中常用的性能调优诊断工具都有哪些,请帮忙提供一下?

2021-11-06 10:24:39 140浏览量 回答数 1
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
0
文章
7733
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载