Java中的自动转型

什么情况下能够自动转型?

1、必须存在继承关系之后才能自动转型
2、子类对象向父类类型自动转型

自动转型的格式

1、格式一
:父类类型 对象名=new 子类构造方法(参数值);
2、格式二
:访问修饰符 返回值类型 方法名(父类名 参数值){}
父类类型 对象名A=new 父类构造方法(参数值);
子类类型 对象名B=new 子类构造方法(参数值);
方法名 (对象名A);
方法名 (对象名B);

自动转型的优点和缺点

1、优点:提高程序的扩展性,提高代码的重用性。举个例子。

public class A{……}
public class a extends A{……}
public class b extends A{……}
public class c extends A{……}

有一个父类A 子类a,b,c,d继承了父类A

public void method(A A1){……}

有一个以父类类型为参数的方法,假设每一个子类都要用到这个方法,我们不必为每一个子类再去写这么一个方法,我们可以直接利用自动转型:

a a1 =new a();
b b1 =new b();
c c1 =new c();

虽然method方法的参数是父类类型,但是我们可以直接将子类类型作为参数。

method(a1);
method(b1);
method(c1);

2、缺点
无法调用子类中特有的属性和方法,这是由于java编译机制的原因,在Java的编译机制中只考虑对象名的类型,如果调用的属性和方法在对象名类型里能够找到则编译通过,否则编译失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值