欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 上转型对象

程序员文章站 2022-03-09 09:58:00
...

1)上转型对象 

上转型对象具有如下特点:

  1. 上转型对象不能操作子类新增加的成员变量,不能使用子类新增的方法。即上转型对象较子类B失去一些属性和功能,这些属性和功能是子类新增的
  2. 上转型对象可以操作子类继承或隐藏的成员变量,也可以使用子类继承的或重写的方法。即为上转型对象可以操纵父类原有的属性和功能,无论这些方法是否被重写
  3. 上转型对象调用方法时,就是调用子类继承和重写过的方法。而不会是新增的方法,也不是父类原有的方法。
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);
    }
}


两者区别: 

Java 上转型对象