本帖最后由 sunsteam 于 2015-8-21 23:16 编辑
首先是看到有下面这个题, 所以自己写了代码实现了下 关于抽象类实现接口有点疑问.
接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?(演讲内容,面试题)
1. 我的理解 接口如果要实现 必须是子类完全重写接口的所有抽象方法, 但是DemoD没有做重写实现的情况下(我注释掉了) 编译运行也通过了 为什么
2. 抽象类在具体重写了2个接口的抽象函数的情况下, 里面又包含主函数. 主函数是静态的, 不能访问同类下的非静态方法, 同时由于abstract和static2个关键词冲突 重写了也没法调用
3. 假设抽象类不包含主函数, 它本身也不能建立对象, 那么就不能用来调用接口的功能 综合2和3 抽象类继承接口是否一点意义也没有?
- interface DemoA
- {
- void aDemo();
- }
- interface DemoB extends DemoA
- {
- void bDemo();
- }
- class DemoC
- {
- void cDemo()
- {
- System.out.println("cDemo run");
- }
- }
- abstract class DemoD extends DemoC implements DemoB
- {
- abstract void dDemo();
- /*
- public void bDemo()
- {
- aDemo();
- System.out.println("bDemo run");
- }
- public void aDemo()
- {
- System.out.println("aDemo run");
- }
- */
- public static void main(String[] args)
- {
- System.out.println("Main run");
- new DemoC().cDemo();
- //bDemo();
- //aDemo();
- }
- }
复制代码
|