//Orc.java
class Villain{
private String name;
protected void set(String nm){name=nm;}
public Villain(String name){this.name=name;}
public String toString(){
return "I'm a villain and my name is"+name;
}
}
public class Orc extends Villain{
private int orcNumber;
public Orc(String name,int orcNumber){
super(name);
this.orcNumber=orcNumber;
} public void change(String name,int orcNumber){
set(name);
---------------------------
this.orcNumber=orcNumber; }
public String toString(){
return "Orc"+orcNumber+":"+super.toString();
}
public static void main(String s[]){
Orc orc=new Orc("Limburger",12);
System.out.println(orc);
orc.change("Bob",19);
System.out.println(orc);
}
}
输出结果Orc 12:i'm a Villain and my name is Limburger
Orc 19'm a Villain and my name is Bob
父类的私有成员不能被子类继承,画下划线那条代码该怎么解释???
class Villain{
private String name;
protected void set(String nm){name=nm;}
public Villain(String name){this.name=name;}
public String toString(){
return "I'm a villain and my name is"+name;
}
}
public class Orc extends Villain{
private int orcNumber;
public Orc(String name,int orcNumber){
super(name);
this.orcNumber=orcNumber;
} public void change(String name,int orcNumber){
set(name);
---------------------------
this.orcNumber=orcNumber; }
public String toString(){
return "Orc"+orcNumber+":"+super.toString();
}
public static void main(String s[]){
Orc orc=new Orc("Limburger",12);
System.out.println(orc);
orc.change("Bob",19);
System.out.println(orc);
}
}
输出结果Orc 12:i'm a Villain and my name is Limburger
Orc 19'm a Villain and my name is Bob
父类的私有成员不能被子类继承,画下划线那条代码该怎么解释???
---------------------------
你是不是看错了
set() 是 protected 是可以被子类访问的如果这样:private void set(String nm){name=nm;}
那么子类就不能访问了
是这么回事吗?????????
是这么回事吗?????????就这个程序来说,这句话是对的。因为name是private修饰的。而setName()是public的。
如果子类和父类的关系是"is a",则采用继承,而是"has a"的关系则采用组合.
因为要尽量满足开闭原则