接口的实现

来源:互联网 发布:看电视直播最好软件 编辑:程序博客网 时间:2024/06/05 18:11

我的问题:
public class myImplClass implements myInterface {
}
在另一个文件里:
myInterface myObj = new myImplClass();

1 myObj指向类myImplClass创建的对象,怎么回事? myOb是接口的实例么?
2 为何不用myImplClass自己建一个引用指向其自身创建的对象?
  --myImplClass myObj = new myImplClass();


回答:
ChDw(米) myObj是一个myImplClass实例,当然也是一个myInterface的实例
myImplClass myObj = new myImplClass();这样当然也是正确的,并没有什么本质的区别

kaymo(头发熟了)myObj指向类myImplClass创建的对象,但只有接口中的方法 这里做了限制

jFresH_MaN()
1.正是java的多态的体现,这样的定义方式是一种"is-a"的模式 myObj是接口的实例但引用的是类对象
2.多态呀!这样创建的对象既可以使用本类的方法,也可以实现接口的功能

sboom(+-LingCh-+)创建了一个myImplClass的实例对象,把这个对象赋予类型为myInterface的引用,这是合法的。没什么为什么不为什么的,这是告诉你可以这么用而已,某些情况下这种用法自然有用。

 j2nix(爱生活爱星辉)
1 本来接口不能实例化,但对于这种多态的方式,要将接口作为抽象类来理解。
2 这可以啊,一点也没错。但是,在使用上就不太灵活了。

fog628 myInterface myObj = new myImplClass();java是天生的动态邦定,所以这样做可以在运行时来决定将要调用的是哪个类里的方面,一句话,还是多态。

nwpulipeng(★★Java程序员★★) 就跟C++里用基类的指针指向派生类的对象一样

我的总结:
1 myImplClass中定义的方法的数量与在myInterface定义要相同,即两个格式一致。
2 在接口中定义的方法,会有好几个实现它的类。然而,在不同的实现类中对这个方法的实现是不同的,这就是多态。myInterface myObj = new myImplClass();这么做的要旨就是让这个方法更加灵活。

原创粉丝点击