这个是接口的引用指向实现它子类的对象 你这里在编译的时候声明的是一个接口对象 但是他指向的是你new Ping()这个子类对象。 这个也是多态度一种体现。然后你调用的他的方法时候,他的方法都是被子类去实现的,所以在运行时调用的是子类的方法。
Iinterface I = new ping();
I.show();
Iinterface D = new Demo1();
D.show();
首先:因为接口可以说是特殊的抽象类,接口里面只能定义常量和抽象方法,接口中的常量默认是public static final修饰的,即需要立即赋值,方法默认是方法默认是public abstract.
所有他像抽象类一样,不能实例化,所有用类来实现接口,并且重写接口的抽象方法.
Iinterface I = new ping();向上转型,创建了一个引用,用来指向它,