package Base;
public class Base{;
protected int protected_data=4;
}
package Derived;
import Base*;
public class Derived extends Base{
Base a=new Base();
pulbic void dataUse()
System.out.println("protected_data="+a.protected_data);}
improt Derived*;
public static void main (String args[]){
Derived d=new Derived();
d.dataUse();}中的System.out.println("protected_data="+a.protected_data);不能输出保护成员,若将a.protected_data改为this.protected_data就可以输出,为什么呢?
public class Base{;
protected int protected_data=4;
}
package Derived;
import Base*;
public class Derived extends Base{
Base a=new Base();
pulbic void dataUse()
System.out.println("protected_data="+a.protected_data);}
improt Derived*;
public static void main (String args[]){
Derived d=new Derived();
d.dataUse();}中的System.out.println("protected_data="+a.protected_data);不能输出保护成员,若将a.protected_data改为this.protected_data就可以输出,为什么呢?
public class Base{;
protected int protected_data=4;
}
package Derived;
import Base*;
public class Derived extends Base{
Base a=new Base();
pulbic void dataUse()
System.out.println("protected_data="+a.protected_data);}
improt Derived*;
public static void main (String args[]){
Derived d=new Derived();
d.dataUse();}
先给你排版排版再看
把他们放在一个包里就能用 ,刚刚没仔细看
但是子类继承的已经存在,可以使用,所以用this可以
但Derived 为什么有protected_data变量域? 因为class Derived extends Base 一个类继承另一个类就有了父类的实例变量域
package Base;
public class Base {
protected int protected_data=4;
} package Derived;
import Base*;
public class Derived extends Base{
Base a=new Base(); //定义了一个b引用
pulbic void dataUse() {
System.out.println("protected_data="+a.protected_data); //a.protected_dat是错的,不能直接用对象引用直接调用protected修饰的成员
//改为this.protected_date后调用的是Derived的成员,你现在是在它类里面,所以可以访问
} import Derived*;
public class Test {
public static void main (String args[]){
Derived d=new Derived();
d.dataUse();
}
}