栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

java多态的使用细节02,访问属性与方法时的区别

Java 更新时间:发布时间: 百科书网 趣学号
public class polyExercise {
    public static void main(String[] args) {

        Sub sub = new Sub();
        // 属性没有重写,具体的结果要看编译类型
        System.out.println(sub.n);  //访问属性,直接看编译类型,编译类型是sub,输出20
        sub.out();  // 调用方法,按照运行类型的查找规则,先查找Sub,输出20

        Base base = sub;
        System.out.println(base == sub); // 指向同一个地址,输出 true
        System.out.println(base.n);    // 访问属性,编译类型是Base,输出 10
        base.out();  // 调用方法,运行类型为Sub,输出20
    }
}

class Base{
    int n = 10;
    public void out(){
        System.out.println(this.n);
    }
}

class Sub extends Base{
    int n = 20;
    public void out(){
        System.out.println(this.n);
    }
}
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/957100.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号