当前位置 博文首页 > YHSevenWater的博客:Java多态性练习:调用方法和属性
①若子类重写了父类方法,就意味着子类里定义的方法彻底覆盖了父类里的同名方法,系统将不可能把父类里的方法转移到子类中;
②对于实例变量则不存在这样的现象,即使子类里定义了与父类完全相同的实例变量,这个实例变量依然不可能覆盖父类中定义的实例变量。
package com.java.oop3;
/**
* @ClassName AttributeMethodTest
* @Description: Java多态性的练习:调用方法和属性
* @Author Seven
* @Date 2021/7/30 15:23
* @Version 1.0
**/
public class AttributeMethodTest {
public static void main(String[] args) {
//创建Sub对象sub
Sub sub = new Sub();
System.out.println(sub.number);
sub.display();
//sub和base都是引用类型数据,赋值操作为地址赋值。
Base base = sub;
//“==”在引用类型数据当中,判断两地址是否相等。
System.out.println(base == sub);
//对象的多态性,不适用于属性:(编译和运行都看左边)
System.out.println(base.number);
//对象的多态性,适用于方法,编译看左边(父类的引用),运行看右边(子类的对象)
base.display();
}
}
class Base {
int number = 10;
public void display(){
System.out.println(this.number);
}
}
class Sub extends Base {
int number = 20;
//重写display方法
public void display(){
System.out.println(this.number);
}
}
cs