class A {
public String f(D obj) {
return ("A and D");
}
public String f(A obj) {
return ("A and A");
}
}
class B extends A {
public String f(B obj) {
return ("B and B");
}
public String f(A obj) {
return ("B and A");
}
}
class C extends B {
}
class D extends B {
}
public class testJava {
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();
// java多态存在的三个必要条件:1.需要有继承关系的存在 2.需要有方法的重写 3.需要有父类的引用指向子类对象
// 集成后子类包含父类方法;注意重写的方法;如果没有匹配方法,应该类型转换
System.out.println(a1.f(a1));
// A and A
System.out.println(a1.f(b));
// A and A
System.out.println(a1.f(c));
// A and A
System.out.println(a1.f(d));
// A and D
System.out.println(a2.f(a1));
// B and A 方法重写
System.out.println(a2.f(b));
// B and A 重写
System.out.println(a2.f(c));
// B and A
System.out.println(a2.f(d));
// A and D
System.out.println(b.f(a1));
// B and A
System.out.println(b.f(b));
// B and B
System.out.println(b.f(c));
// B and B
System.out.println(b.f(d));
// A and D
}
}
java多态举例
最新推荐文章于 2022-12-30 13:11:44 发布