Java对象的上转型对象

假设,A是B的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中时,如:

//方法1:
A a;
a = new B();

//方法2:
A a = new B();

//方法3:
A a;
B b = new B();
a = b;

这时,称对象a是对象b的上转型对象。

简单来说,就是“以父之名,子类创建”

举个例子:

创建一个Census类:

public class Census{
  String idno;
  String name;
  String sex;
  String loedu;
  int age;
  public Census() {
  //无参的构造方法
}
  public Census(String name,String idno,String sex,int age,String loedu) {
	  //带参的构造方法
	  this.name = name;
	  this.idno = idno;
	  this.sex = sex;
	  this.age = age;
	  this.loedu = loedu;
	}
   void showMess(){
     System.out.println("显示普查信息");
   }
}

创建一个子类 FujianQZ:

public class FujianQZ extends Census{
      String region;
      public FujianQZ() {
		// 无参的构造方法
    	  super();//调用父类的构造方法(可省略)
	}
      public FujianQZ(String region,String name,String idno,String sex,int age,String loedu) {
  		// 有参的构造方法
    	  super(name,idno,sex,age,loedu);
    	  this.region = region;
  	}
     
     void showMess(){
    	 super.showMess();//调用父类的构造方法
    	 System.out.print(region+":");   	 
    	 System.out.println(idno+" "+name+" "+sex+"  "+age+"  "+loedu);
     }
     
}

测试类代码为:

public class MainClass{
      
    public static void main(String args[]){
         FujianQZ fjqz=new FujianQZ("福建泉州", "张三", "3505*****1234", "男", 18,"本科");
         fjqz.showMess();//调用FujianQZ的showMess
         Census census = new FujianQZ("福建泉州", "李四", "3505*****1235", "女", 20,"研究生");
         census.showMess();//调用FujianQZ的showMess,而不是Census的showMess
    }  
}

测试类中的代码 census.showMess();结果为:

显示普查信息
福建泉州:3505*****1235 李四 女  20  研究生

而不是
显示普查信息

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值