public abstract class myinterface {
public abstract void methon();
}
这是父类
public class interfaceabs extends myinterface {
public void methon(){
System.out.println("抓猫");
}
}
这是子类
public class myinterface2 {
public void methon3(myinterface a){
if (a instanceof interfaceabs){
interfaceabs b=(interfaceabs) a;
b.methon();
}
}
}
这是实现类
public class test
{
public static void main(String[] args) {
myinterface2 vb=new myinterface2();
myinterface a=new interfaceabs();
vb.methon3(a);
}
}
main
1.父类myinterface是一个抽象类,有一个抽象方法methon
2.子类interfaceabs继承了父类,覆盖重写了父类的methon抽象方法
3.实现类,首先向上转型,用父类对象引用了子类的实例
4.if语句,如果这个父类对象a引用了interfaceabs实例(用instanceof),就执行下面的代码
5.if语句成立,就将a引用向下转型,强制转换成子类引用。然后调用子类的方法。