top

学习笔记chapter5的第4题

本帖最後由 krave 於 2014-1-12 18:43 編輯

老师,您好:
关于 学习笔记chapter5的第4题
如果有以下程序片段:
public class Some{
        public int x;
        public Some (int x){
            x = x;
        }
}

B: new Some(10)创建对象后,对象成员x值为0
C: Some s = new Some(10)后,可使用 s.x 取得

B、C项看起来都正确,不晓得应该选哪个。
想确认下,取得的含义是指return得到么?

應該是選項 C 少打了字 … 取得 10 …

TOP

應該是選項 C 少打了字 … 取得 10 …
caterpillar 發表於 2014-1-12 15:14



    了解,所以应该选B就对了。

关于继承与多态,遇到了一个编译错误问题。

使用了书中的Role类,有SwordsMan和Magician进行继承。

                SwordsMan sm = new SwordsMan();
                sm.setName("Gaoli");
                sm.setLevel(0);       
                sm.setBlood(100);       

                Magician mm = new Magician();
                mm.setName("Lina");
                mm.setLevel(0);       
                mm.setBlood(100);

使用 mm instanceof SwordsMan时,出现编译错误:不可转换的类型

请问老师,是我使用instanceof的方法有问题么?

TOP

必須有上下繼承關係,才可以使用 instanceof 判斷

TOP

必須有上下繼承關係,才可以使用 instanceof 判斷
caterpillar 發表於 2014-1-13 09:49



    看到之后关于override的部分,以下这句不晓得应该如何理解。

static方法也没有多态,因为对象不会个别拥有static成员。

为什么对象不会个别拥有static成员,static方法就没有多态呢?

TOP

static 方法,從某些角度來看,可說是將類別名稱作為名稱空間(namespace)罷了 … 像是 Math.max 就是 max 將 Math 當成名稱空間 …

TOP