分类: Java
2008-03-26 14:08:39
#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(); } |