java中为什么子类仍然可以通过继承公共方法访问父类的私有变量?
代码如下:
public class Interfaces {
public static void main(String[] args) {
Dog d = new Dog(3);
d.enjoy();
Valueable v = (Valueable)d;
System.out.println(d.valueable());
d.setname("aaaa");
System.out.println(d.getname());
System.out.println(d.getf()+"\n");
}
}
interface Valueable {
public int valueable();
}
interface Protectedable {
public void protectedable();
}
abstract class Animal{
private String name;
abstract void enjoy();
public void setname(String name) {
this.name = name;
}
public String getname(){
return this.name;
}
}
class Dog extends Animal implements Valueable,Protectedable {
private int age;
Dog(int age){
this.age = age;
//this.name = name;
}
public void enjoy() {
System.out.println("狗叫");
}
public int valueable() {
return 100;
}
public void protectedable() {
System.out.println("值钱的东西");
}
public String getf() {
return super.getname();
}
}
那子类 d对象里面有没有 name 属性? 不然访问的name 是从哪里来的?
搞不明白了...