java继承中的查找关系

public class ExtendsTheory {
    public static void main(String[] args) {
        Son son = new Son();
        // 输出时,按照查找关系
        // 先在son这个子类中查找,有这个属性并且可以访问,则返回信息并输出
        // 如果没有,则继续往上级的父类查找,直到Object
        System.out.println(son.name);      // 查找到Son 中的 “张三”
        System.out.println(son.age);       // Son中没有,则向上查找到 Father中的 40
        System.out.println(son.hobby);     // 向上查找到 Grandpa中的 “旅游”
            // 如果有这个属性,但是不能访问,则会直接报错。我们可以通过公共方法间接访问到
            // 例如 weight 属性, Father类中是私有的,不能直接访问,Grandpa中是公共的,可以访问
            // 当查找到Father时,发现了weight属性,但是不能访问,会发生报错
            // 而不是发现不能访问后继续向上查找, 因为按照查找关系,已经找到了这个属性。
       // System.out.println(son.weight);     // 不能直接访问,报错,不会再查找了,即使上面                                                                        //    还有公共的weight,也不会被输出

        System.out.println(son.getWeight());  // 通过公共方法访问到weight并输出 140

    }
}
class Grandpa{
    String name = "张五";
    int age = 70;
    String hobby = "旅游";
    int wight = 120;
}
class Father extends Grandpa{
    String name = "张四";
    int age = 40;
    private int weight = 140;

    public int getWeight() {
        return weight;
    }
}
class Son extends Father{
    String name = "张三";
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值