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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

这样就可以把每天学到的好东西都记录下来了
/**
         * 当一个类继承了一个类同时还实现了两个接口.
         * 巧合的是,这个父类和两个接口他们3个都有同名的变量.
         * 这时我们就应该用super.变量名和接口名.变量名来区分他们3个的不同调用
         * this.变量名和直接使用变量名都是不可以的(会有歧义).除非你在这个类中重新定义了这个变量
         *
         * 为什么一个java类一定要先extends再implements?
         * 1.
         * 最终的不能再被赋值,这也可能是为什么继承和实现都有的时候为什么继承写在前面了
         * 2.
         *         interface A {
                        void fa();
                }
                class C implements A{
                        void fa() {...}
                }

                假如现在有类D,它需要实现接口A,也要继承类C,
                当把extends放在前面,则类D会先继承C,再实现接口A,那么就不用再去实现fa()了,即
                class D extends C implements A{
                }
                若将extends 放在implements后面,那就要实现fa()方法了,但又继承类C,类c中也可fa()方法,此时就会出现问题!
                3.
                只能继承一个类,却可以implements多个接口。处于不确定状态的一般写在后面。比如可变参数:
                void test(intx,int ... sum){}。就不能写成void test(int ... sum,int x){}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马