子类与父类之间的转换

本文通过具体的Java代码示例介绍了类的继承与多态的概念。演示了如何在一个父类的基础上创建子类,并覆盖父类的方法。同时展示了如何通过父类引用调用子类方法及类型检查和转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class A {
	
	public void fun1() {
		System.out.println(" A fun1 is calling!!!");
	}
	
	public void fun2() {
		fun1();	
	}
	
}

class B extends A{
	
	public void fun1() {
		System.out.println(" B fun1 is calling!!!");
	}	
	
	public void fun3() {
		System.out.println(" B fun3 is calling!!!");	
	}
	
}

class Test {
	
	public static void main(String[] args) {
			A a = new A();
			callA(a);
			
			//子类可以隐式转换成父类,但父类不能隐式转换成子类(如果非要转可以采用强制类型转换)
			//象下面
			A c = new B();   //象这样一句是没有问题的
			//B d = new A(); //象这样一句编译时就会报 "不兼容的类型" 错误
			B e = (B)new A(); //象这样一句采用了强制类型转换虽编译时不会报错,但在运行时就会报 
			                  //"java.lang.ClassCastException" 错误
	}
	public static void callA(A a) {
		
		B b = null;
		if(a instanceof B) {
			b = (B)a;	
			b.fun1();
			b.fun2();
			b.fun3();	
		}else {
			a.fun1();
			a.fun2();	
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值