黑马程序员技术交流社区

标题: 抽象类和接口!? [打印本页]

作者: jiangweibin2573    时间: 2014-8-12 20:07
标题: 抽象类和接口!?
如果一个类继承或者实现接口时候,必须实现所有的抽象方法吗?
我知道的是当我继承一个类,如果没有全部实现,那么我还是抽象类。
我想知道的是,如果一个类实现某接口的时候,一定要实现里面的所有抽象方法吗??
作者: J.twt    时间: 2014-8-12 20:30
如果一个类继承或者实现接口时候,必须实现所有的抽象方法吗?
答:只有在实现接口的时候才必须要实现全全部的方法,另外接口里面的全是都是抽象方法,而如果你继承的是抽象类,那么只有当你实现全部的抽象方法的时候才能创建对象并实例化;

我知道的是当我继承一个类,如果没有全部实现,那么我还是抽象类。
答:这句话稍微有点问题。当你继承的不管是什么类,你都不是抽象类,唯一的区别是,当你继承抽象类的时候你必须要实现里面的方法;

我想知道的是,如果一个类实现某接口的时候,一定要实现里面的所有抽象方法吗??
答:这是是的,必须实现所有的方法。
作者: 象牙    时间: 2014-8-12 20:41
楼上都已经替你解答了,飘过....
作者: ﹑淼    时间: 2014-8-12 21:06
对,和抽象类一样
作者: hejinzhong    时间: 2014-8-12 22:19
J.twt 发表于 2014-8-12 20:30
如果一个类继承或者实现接口时候,必须实现所有的抽象方法吗?
答:只有在实现接口的时候才必须要实现全全 ...

我不实现接口中的所有方法,当个抽象类不行吗?我试了,我把实现接口的类定义为抽象类,也可以。这怎么解释呢?
作者: J.twt    时间: 2014-8-13 12:26
hejinzhong 发表于 2014-8-12 22:19
我不实现接口中的所有方法,当个抽象类不行吗?我试了,我把实现接口的类定义为抽象类,也可以。这怎么解 ...

抽象类中当然可以有抽象方法,但是你这样又有什么意义?单纯为了验证这个问题?开发中几乎用不到你这种情况
作者: 永恒星空    时间: 2014-8-13 12:35
实现接口不就是要用接口里面的方法,你把实现接口的类定义成抽象类还怎么去用它的方法。
作者: 席杰    时间: 2014-8-13 12:38
是的一定实现,否则报错。
作者: 舍我其谁    时间: 2014-8-13 12:42
抽象类除外啊!
作者: 新航向    时间: 2014-8-13 12:44
抽象方法只能存在于抽象类或者接口中,而抽象类中既可以有抽象方法,又可以有非抽象方法。
因此子类若没有重写父类中所有的抽象方法,则子类(包含抽象方法)必须声明为抽象类。
作者: hejinzhong    时间: 2014-8-13 17:12
永恒星空 发表于 2014-8-13 12:35
实现接口不就是要用接口里面的方法,你把实现接口的类定义成抽象类还怎么去用它的方法。 ...

没说一定要用他建立对象啊
作者: ❤如止水之絕境    时间: 2014-8-13 20:29
继承自抽象类,如果不完全实现,自身就必须声明也是抽象类,而实现接口,则需要全部实现。
作者: jiangweibin2573    时间: 2014-8-13 22:28
❤如止水之絕境 发表于 2014-8-13 20:29
继承自抽象类,如果不完全实现,自身就必须声明也是抽象类,而实现接口,则需要全部实现。 ...

我实现接口,不全实现,做个抽象类不行吗?
作者: 永恒星空    时间: 2014-8-14 09:47
hejinzhong 发表于 2014-8-13 17:12
没说一定要用他建立对象啊

那定义类不就没有意义了吗?
作者: Moriarty    时间: 2014-8-14 10:38
抽象类可以局部复写,但接口必须全部实现。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2