黑马程序员技术交流社区

标题: 今天复习了一下面向对象里的接口,有点心得,分享一下 [打印本页]

作者: 1046656214    时间: 2016-6-3 16:47
标题: 今天复习了一下面向对象里的接口,有点心得,分享一下
今天休息,复习了一下面向对象中的接口,因为是昨天讲的,概念太多,讲一遍根本记不住,并且是跟着老师的思路学习的,所以没有自己的思路,完全是昨天听,今天忘的状态,所以有复习了一下,有个小收获,分享一下:                                                      
   接口中的特点有一条是:接口可以继承接口,可以单继承,可以多继承.
        今天看了一下,发现"可以多继承",非常使新手容易误解,前面讲过的知识点说过类继承的问题,即只能单继承,不能多继承,可以多层继承,而接口中提到的"可以多继承",和类是一样的,也是可以多层继承,不可以多继承,即只有有一个亲爹,不能有多个亲爹,可以有多个干爹,大家是不是被这段文字绕晕了??呵呵哒,下面我把写的代码发一下,大家看一下就明白了:
//接口1,说英语
public abstract interface SpeakEnglish {
        //System.out.println("说英语");
        public abstract void speak1();
}
//接口2,说日语并继承说英语
public abstract interface SpeakJapanese extends SpeakEnglish{
        public abstract void speak2();
}
//接口3,说中文,并且继承说日语
public abstract interface SpeakChinese extends SpeakJapanese {
        public abstract void speak3();
}
//Person类实现接口SpeakChinese
public class Person implements SpeakChinese {
        @Override
        public void speak3() {
                System.out.println("说中文");
        }
        @Override
        public void speak1() {
                System.out.println("说英语");
        }
        @Override
        public void speak2() {
                System.out.println("说日语");
        }
}
//测试类
public class Test {
        public static void main(String[] args) {
                //创建对象Person
                Person p = new Person();
                //调用方法
                p.speak3();
                p.speak1();
                p.speak2();
        }
}
如果最后一个接口SpeakChinese同时继承SpeakEnglish和SpeakJapanese,那么就会报错.
有什么看不懂的,或者指点,请大神指点!!
作者: hktk896406003    时间: 2016-6-3 19:10
学习了学习了学习了
作者: loop    时间: 2016-6-3 21:38
学习了........




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