A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一抹浓茶 中级黑马   /  2015-3-19 09:59  /  1236 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一个类实现接口后,没有覆盖接口中的方法,为什么该类必须要定义为抽象类?

3 个回复

倒序浏览
抽象类可以不实现接口的方法,但该类必须声明为抽象类,让他的子类来实现.,如果他的子类还是抽象类那就再由子类的子类去实现,直到继承该类的类不是抽象类为止。前提是所继承该类的派生类是不是抽象类来衡量是否需要实现接口的方法.
1 如果实现类也是抽象类,则可以部分实现父类或接口中的方法、属性;
2 如果实现类是非抽象的,则必须实现抽象父类或接口中的方法、属性。
回复 使用道具 举报
一句话,没覆盖的话这个类就会有抽象方法,一般类中不能有抽象方法,所以要定义为抽象类。
回复 使用道具 举报
huhanghao 来自手机 中级黑马 2015-3-19 14:04:11
板凳
如果你想用该类仅仅作为方法来实现,为了避免用它来建立对象,最好为其中要实现的函数定义为abstract。这样该类只能被继承并重写该方法才行。这就类似接口的功能了。不过建议实现功能还是用接口比较好。因为类和接口的抽象范围不一样,类抽象的是一类具体对象基本的东西。但是接口仅仅抽象的是动作。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马