- 论坛徽章:
- 0
|
protected关键字一直不是很理解。
#Orc.java
package com.biaoflying;
class Villian{
private String name;
protected void set(String name){
this.name=name;
}
public Villian(String name){
this.name=name;
}
public String toString(){
return "I'm a Villian and my name is "+name;
}
}
public class Orc extends Villian{
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;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Orc orc=new Orc("Limburger",12);
System.out.println(orc);
#在子类中可以访问protected方法。
orc.set("abio");
System.out.println(orc);
}
}
#TestProtected.java与Orc.java在同一个包中。
package com.biaoflying;
public class TestProtected {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Villian vil=new Villian("Villian");
#同一个包中也可以访问protected方法。
vil.set("Nailliv");
System.out.println(vil);
}
}
#问题:在Orc.java中的Orc类中插入以下代码,得到同样的输出。我的理解
#是当子类没有实现基类的方法并在子类中调用该方法,实际上调用的是基类子
#对象的相关方法。属性使用的是基类子对象的相关属性。
public String toString(){
return super.toString();
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/63463/showart_508776.html |
|