黑马程序员技术交流社区

标题: 接口实现类是怎么继承接口里的成员变量(也就是常量)的呢? [打印本页]

作者: jingyarufeng    时间: 2016-8-12 01:13
标题: 接口实现类是怎么继承接口里的成员变量(也就是常量)的呢?
本帖最后由 jingyarufeng 于 2016-8-12 01:16 编辑

[AppleScript] 纯文本查看 复制代码
public class Demo2_Interface {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                Demo d = new Demo();
                d.print();
                System.out.println(Inter.num);        //这里说明接口默认是被static修饰的
                DDDD abcd =new DDDD();
                abcd.print();
        }

}

public interface Inter {
        int num = 10;
}

public class Demo implements Inter {
        public void print() {
                //num = 20;                //接口中的成员变量默认是final的,不可以再被赋值
                System.out.println(num);
        }
}

public class DDDD {
        public void print() {
                System.out.println(num);        //前面Demo类中是继承了接口才可以用的num么,那他
                                                                //没有构造方法怎么继承的呢?如果说是因为他是被public static
                                                                //final修饰的,所以都可以使用,那我咋不能用咧?
                                                                //叔叔!我们要用,我们要用!
        }
}

有没有没睡的大神了!能否告知小弟这个问题!要不然会睡不着的!


作者: jingyarufeng    时间: 2016-8-12 01:53
这么晚了,好像没人了哎!
想了一会儿,总算想明白了!
继承是继承!
构造方法是构造方法!
虽然说父类的构造方法是用来给子类进行父类初始化的,但是接口中的成员变量是常量,不需要再被初始化,也不能再被子类传值修改了.所以,接口中也不需要有构造方法了! 那这里为什么可以使用这个成员变量(常量),但是另起一个不是接口实现类里却不能用呢?因为人家是继承关系.当然可以使用了...你不是接口实现类,没有继承关系,怎么可以直接用呢?你真想用?那你类名. 来试试!

作者: zaoan    时间: 2016-8-12 12:30
子类实现接口,接口就是父类了,子类用父类的东西,理所当然哈!

就像子类继承父类,子类不重写父类方法,但不是也是可以直接调用的嘛,思路一样的




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