java多态举例

来源:互联网 发布:微领袖学堂源码 编辑:程序博客网 时间:2024/05/01 12:20
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 ASystem.out.println(a1.f(b));// A and ASystem.out.println(a1.f(c));// A and ASystem.out.println(a1.f(d));// A and DSystem.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 ASystem.out.println(a2.f(d));// A and DSystem.out.println(b.f(a1));// B and ASystem.out.println(b.f(b));// B and BSystem.out.println(b.f(c));// B and BSystem.out.println(b.f(d));// A and D}}

原创粉丝点击