多态性是面向对象的重要特性
public class Demo03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
B b=new B();
C c=new C();
fun(b);
fun(c);
}
/*多态方法 ,通过instanceof关键字判断是不是类的实例,不同子类参数分别调用不通的子类方法,体现多态性*/
public static void fun(A a){
a.fun1();
if(a instanceof B){
B b=(B)a;
b.fun2();
}
if(a instanceof C){
C c=(C)a;
c.fun3();
}
}
}
/*定义类A*/
class A{
public void fun1(){
System.out.println("A->fun1");
}
}
/*定义类B继承类A*/
class B extends A{
public void fun1(){
System.out.println("B->fun1");
}
public void fun2(){
System.out.println("B->fun2");
}
}
/*定义类C继承类A*/
class C extends A{
public void fun1(){
System.out.println("C->fun1");
}
public void fun3(){
System.out.println("C->fun3");
}
}
运行结果: