java对象类型转换

简介:java对象的类型转换是指存在继承关系的对象之间的类型转换。并非所有对象都可以

  • 进行对象间的类型转换。一共有两种,分别是向上转型和向下转型。 1、向上转型:父类引用指向子类对象。 语法:FatherClass
    obj = new SonClass();
    FatherClass:父类类名(具体类或者抽象类)或接口名
    obj:对象(引用)
    SonClass:子类类名(继承父类的具体类,继承抽象类的具体子类,接口的实现类)
    向上转型就是将子类对象赋值给父类引用 使用向上转型后可以调用父类类型中的多有成员,但是不能调用子类类型中的特有成员,
    即定义在子类中的特有成员,并非继承父类类型中的成员,由于方法存在重写,所以具体 的实现效果,需要结合子类的具体实现情况。
例://父类
   Class Father{
       int a = 10;
       int b = 20;
       public void method(){
           System.out.println(“父类 - 成员方法”);
       }
   }
   //子类
   Class Son extends Father{
       int c = 30;
       public void method(){
           System.out.println(“子类 - 成员方法”);
       }
   }
   //测试类
   Class Demo{
       public static void main(String[] args){
           Father father = new Son();
           father.method();//结果:子类 - 成员方法
       }
   }

2、向下转型:子类引用指向父类对象

  • 语法:SonClass obj = (son) new FatherClass();
    SonClass:子类类名(继承父类的具体类,继承抽象类的具体子类,接口的实现类)
    obj:对象(引用)
    FatherClass:父类类名(具体类或者抽象类)或接口名 向下转型可以调用子类类型中的所有成员。如果父类引用指向的是子类对象,此时 向下转型是安全的,编译运行都不会有问题。如果父类引用指向的是父类对象,此 时向下转型是不安全的,编译不会出错,但是运行时会出现类型转换异常。通过使 用instanceof运算符判断父类引用指向的对象是否是子类对象,可以避免出现类 型转换异常。
例://父类
   Class Father{
       int a = 10;
       int b = 20;
       public void method(){
           System.out.println(“父类 - 成员方法”);
       }
   }
   //子类
   Class Son extends Father{
       int c = 30;
       public void method(){
           System.out.println(“子类 - 成员方法”);
       }
   }
   //测试类
   Class Demo{
       public static void main(String[] args){
           //安全转换
           Father father = new Son();//父类引用指向子类对象
           Son son = (Son)father;//强制类型转换
           //不安全转换
           //Father father = new Father();//父类引用指向父类对象
           //Son son = (Son)father;//强制类型转换,出错(类型转换异常)
           //附:子类引用不可以直接指向父类对象
       }
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值