//多态
//一个父类的引用对象既可以引用父类的对象也能引用子类的对象,这就是多态
//这个程序就是利用多态实现父类调用子类的对象,就算再增加子类,也能够解决.
class A
{
public void f()
{
System.out.printf("AAAAA\n");
}
}
class B extends A
{
public void f()
{
System.out.printf("BBBBB\n");
}
}
class C extends B
{
public void f()
{
System.out.printf("CCCCC\n");
}
}
class D extends C
{
public void f()
{
System.out.printf("DDDDD\n");
}
}
class test
{
public static void g(A aa)
{
aa.f();
}
public static void main(String[] args)
{
// A aa = new A();
// B bb = new B();
// aa = bb; //aa = bb,可以,bb = aa,就会报错
// aa.f();
// bb.f();
A aa = new A();
B bb = new B();
C cc = new C();
D dd = new D();
g(aa);
g(bb);
g(cc);
g(dd);
}
}
//一个父类的引用对象既可以引用父类的对象也能引用子类的对象,这就是多态
//这个程序就是利用多态实现父类调用子类的对象,就算再增加子类,也能够解决.
class A
{
public void f()
{
System.out.printf("AAAAA\n");
}
}
class B extends A
{
public void f()
{
System.out.printf("BBBBB\n");
}
}
class C extends B
{
public void f()
{
System.out.printf("CCCCC\n");
}
}
class D extends C
{
public void f()
{
System.out.printf("DDDDD\n");
}
}
class test
{
public static void g(A aa)
{
aa.f();
}
public static void main(String[] args)
{
// A aa = new A();
// B bb = new B();
// aa = bb; //aa = bb,可以,bb = aa,就会报错
// aa.f();
// bb.f();
A aa = new A();
B bb = new B();
C cc = new C();
D dd = new D();
g(aa);
g(bb);
g(cc);
g(dd);
}
}