黑马程序员技术交流社区

标题: 类的继承和多实现同用时的小收获 [打印本页]

作者: 清风有意    时间: 2014-4-1 16:52
标题: 类的继承和多实现同用时的小收获

代码如下
interface Inter{
        public abstract void show();
}
interface InterA{
        public abstract void show();
}
class Demo{
        public void show(){
                System.out.println("aaaaaa");
        };
}
class Test extends Demo implements Inter,InterA{
        public void show(){
                System.out.println("cccccccc");
        }
}

public class MyTest{
        public static void main(String[] args){
                Test t1=new Test();
                t1.show();
        }

}
这个Test show()方法复写了父类的show方法,而且实现了接口中的show方法。编译运行肯定能通过。
接下来,将Test中的public void show()方法删除,那么接口中的抽象方法是否会被父类中的show()方法覆盖呢?其他不变,编译运行通过,可以建立对象。可见父类中的方法就是自己的方法。
作者: osully    时间: 2014-4-1 17:12
通常这种情况 应该直接用父类实现接口
作者: 清风有意    时间: 2014-4-1 18:24
osully 发表于 2014-4-1 17:12
通常这种情况 应该直接用父类实现接口

不知考虑过这种情形吗?
父类如果实现了接口1.如果父类想要建立对象,那么就需要对接口中的方法进行复写。而子类中也都具有了父类接口中的方法。
2.如果父类不复写接口的抽象方法,那么这个父类就是抽象类,必须子类复写方法。但是如果需求是只需要父类中没有接口方法的方法体呢?  
当然,这个子类也可以当成是某一个类的父类了!

不知这个通常情况下是指?

作者: osully    时间: 2014-4-1 18:35
意思是 你这个子类又复写父类方法 又实现接口方法
这个情况
通常的写法是父类去实现接口,
而子类如果想要方法内容不一样 就去复写父类




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