java吧 关注:1,254,676贴子:12,744,651
  • 0回复贴,共1

萌新有个小问题想问问大佬们

只看楼主收藏回复

一个多态和继承的问题下面我贴一下代码可能有点长
代码1:
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(B obj){ return ("B and B"); }
public String show(A obj){ return ("B and A"); }}
class C extends B{
}
class D extends B{}
public class Demo {
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();
System.out.println("1--" + a1.show(b));
System.out.println("2--" + a1.show(c));
System.out.println("3--" + a1.show(d));
System.out.println("4--" + a2.show(b));
System.out.println("5--" + a2.show(c));
System.out.println("6--" + a2.show(d));
System.out.println("7--" + b.show(b));
System.out.println("8--" + b.show(c));
System.out.println("9--" + b.show(d)); }}//结果://1--A and A//2--A and A//3--A and D//4--B and A//5--B and A//6--A and D//7--B and B//8--B and B//9--A and D
代码2:
class X {
public void show(Y y){
System.out.println("x and y"); }
public void show(){
System.out.println("only x"); }}
class Y extends X {
public void show(Y y){ System.out.println("y and y"); }
public void show(int i){ }}
class main{ public static void main(String[] args) { X x = new Y(); x.show(new Y()); x.show(); }}//结果//y and y//only x


IP属地:浙江1楼2018-05-08 17:31回复