码迷,mamicode.com
首页 > 其他好文 > 详细

4.45 多态中向上转型和向下转型

时间:2015-09-17 10:18:16      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

/*
多态的弊端:
	不能使用子类的特有功能。
	
就想使用子类的特有功能?行不行?
	行。
	
怎么用呢?
	A:创建子类对象调用方法即可。(可以,但是很多时候不合理。而且,太占内存了)
	B:把父类的引用强制转换为子类的引用。(向下转型)
	
对象间的转型问题:
	向上转型:
		Fu f = new Zi();
	向下转型:
		Zi z = (Zi)f; //要求该f必须是能够转换为Zi的。
*/
class Fu {
	public void show() {
		System.out.println("show fu");
	}
}

class Zi extends Fu {
	public void show() {
		System.out.println("show zi");
	}

	public void method() {
		System.out.println("method zi");
	}

}

class DuoTaiDemo4 {
	public static void main(String[] args) {
		// 测试
		Fu f = new Zi();
		f.show();
		// f.method();

		// 创建子类对象
		// Zi z = new Zi();
		// z.show();
		// z.method();

		// 能够把子的对象赋值给父亲,那么能不能把父的引用赋值给子的引用呢?
		// 如果可以,但是如下
		Zi z = (Zi) f;
		z.show();
		z.method();
	}
}


4.45 多态中向上转型和向下转型

标签:

原文地址:http://my.oschina.net/u/2001589/blog/507133

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!