Java 上转型对象
程序员文章站
2022-03-09 09:58:00
...
(1)上转型对象
上转型对象具有如下特点:
- 上转型对象不能操作子类新增加的成员变量,不能使用子类新增的方法。即上转型对象较子类B失去一些属性和功能,这些属性和功能是子类新增的。
- 上转型对象可以操作子类继承或隐藏的成员变量,也可以使用子类继承的或重写的方法。即为上转型对象可以操纵父类原有的属性和功能,无论这些方法是否被重写
- 上转型对象调用方法时,就是调用子类继承和重写过的方法。而不会是新增的方法,也不是父类原有的方法。
class Person2{
int a= 11;
int b= 0; //相对于Student类 隐藏的变量
public void eat() {
System.out.println("我什么都喜欢吃!");
}
public void rt(){
System.out.println("rt!");
}
}
class Student2 extends Person2{
int a =2;
int c =1; //子类新增加的方法
public void eat() {
System.out.println("我喜欢吃冰淇淋!"); //覆盖父类方法
}
public void study(){
System.out.println("I can study!");
} // Student类定义了自己的新方法
public void rt(){
System.out.println("子类rt!");
}
}
public class Test1 {
public static void main(String[] args) {
Person2 p = new Student2(); //向上转型
p.eat();
p.rt();
System.out.println(p.b);//隐藏的变量
System.out.println(p.a);
}
}
两者区别:
上一篇: 字符串的方法