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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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修饰的,所以都可以使用,那我咋不能用咧? 
                                                                //叔叔!我们要用,我们要用!
        }
}

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

评分

参与人数 1黑马币 +2 收起 理由
r1503882525 + 2 态度认真,奖励一下

查看全部评分

2 个回复

正序浏览
子类实现接口,接口就是父类了,子类用父类的东西,理所当然哈!

就像子类继承父类,子类不重写父类方法,但不是也是可以直接调用的嘛,思路一样的
回复 使用道具 举报
这么晚了,好像没人了哎!
想了一会儿,总算想明白了!
继承是继承!
构造方法是构造方法!
虽然说父类的构造方法是用来给子类进行父类初始化的,但是接口中的成员变量是常量,不需要再被初始化,也不能再被子类传值修改了.所以,接口中也不需要有构造方法了! 那这里为什么可以使用这个成员变量(常量),但是另起一个不是接口实现类里却不能用呢?因为人家是继承关系.当然可以使用了...你不是接口实现类,没有继承关系,怎么可以直接用呢?你真想用?那你类名. 来试试!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马