读书人

protected 不是继承可用么?该怎么处理

发布时间: 2012-04-15 18:39:21 作者: rapoo

protected 不是继承可用么?

Java code
package p1;public interface SayMe {    void say();}

Java code
package p2;import p1.SayMe;public class Person {    protected class PersonSayMe implements SayMe{        public void say(){            System.out.println("PersonSayMe");        }    }    protected void walk(){        System.out.println("Person walk");    }}

Java code
package p3;import p2.Person;import p1.SayMe;public class FeMale extends Person{    public SayMe getSayMe(){        return new PersonSayMe(); //为什么这个不能继承Person 的 PersonSayMe ????    }        public static void main(String[] args){        new FeMale().walk();    }}


[解决办法]
因为你的PersonSayMe是一个内部类,并且不是static的,其相当于Person 的字段一样,怎么才能使用字段,先有Person 才行

这样该就可以了

Java code
public class FeMale extends Person{    public SayMe getSayMe(){        return new FeMale().new PersonSayMe(); //为什么这个不能继承Person 的 PersonSayMe ????    }        public static void main(String[] args){        new FeMale().walk();    }} 

读书人网 >J2SE开发

热点推荐