首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-04-15 
protected 不是继承可用么?Java codepackage p1public interface SayMe {void say()}Java codepackage p

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();    }} 

热点排行