黑马程序员技术交流社区
标题:
接口理解的问题?
[打印本页]
作者:
希望的曙光
时间:
2013-1-10 01:04
标题:
接口理解的问题?
本帖最后由 希望的曙光 于 2013-1-10 01:05 编辑
public class ping implements Iinterface {
public static void main(String[] args) {
//这里该怎么理解呢??????????????????????????????????????
Iinterface I = new ping();
I.show();
Iinterface D = new Demo1();
D.show();
}
public void show()
{
System.out.println( "main ...... show");
}
}
class Demo1 implements Iinterface
{
//接口实现
public void show()
{
System.out.println( "Demo1 ...... show");
}
}
interface Iinterface
{
void show();
}
作者:
汪叶庭
时间:
2013-1-10 07:29
你在下面定义了一个接口,叫Iinterface
而你的 ping类实现了这个接口
Iinterface D = new ping();就是说,创建一个Iinterface类型的引用,指向ping类的实例对象
作者:
罗利华
时间:
2013-1-10 14:23
implements关键字表示的是一种特殊继承关系。
可以简单认为它就是继承关系。
也就是说只要继承这个接口,那么它的实现类就属于接口这种类型。
就可以产生一个父类的引用指向子类,当调用时会根据你具体创建的对象来调用它所对应的方法。
作者:
张森
时间:
2013-1-10 18:51
这个是接口的引用指向实现它子类的对象 你这里在编译的时候声明的是一个接口对象 但是他指向的是你new Ping()这个子类对象。 这个也是多态度一种体现。然后你调用的他的方法时候,他的方法都是被子类去实现的,所以在运行时调用的是子类的方法。
Iinterface I = new ping();
I.show();
Iinterface D = new Demo1();
D.show();
作者:
赵晓波
时间:
2013-1-11 00:37
首先:因为接口可以说是特殊的抽象类,接口里面只能定义常量和抽象方法,接口中的常量默认是public static final修饰的,即需要立即赋值,方法默认是方法默认是public abstract.
所有他像抽象类一样,不能实例化,所有用类来实现接口,并且重写接口的抽象方法.
Iinterface I = new ping();向上转型,创建了一个引用,用来指向它,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2