多态的弊端、向上转型和向下转型

package 多态;

/*
 * 			多态的弊端:
 * 					不能使用子类的功能
 * 			使用子类的功能:
 * 					1.直接创建子类的对象,然后调用方法(可行,但是这不是多态)
 * 					2.把父类对象的引用强制转换成子类对象的引用(向上转型/向下转型)
 * 						向下转型可以使用子类和父类的方法
 * 			对象转型的格式:
 * 					向上转型:
 * 							Fu f=new Zi();
 * 					向下转型:
 * 							Zi zi=(Zi)f;//先创建父类对象,在进行向下转型;
 */
class Laozi{
	int age=30;
	public void show() {
		System.out.println("劳资");
	}
}

class Zi1 extends Laozi{
	int  age=10;
	public void method() {
		System.out.println("我是子方法");
	}
	public void function() {
		System.out.println("我是子功能");
	}
}

public class Practice01 {
	public static void main(String[] args) {
		Laozi lao=new Zi1();//向下转型
		System.out.println(lao.age);
		lao.show();
//		lao.function();//弊端:不能使用子类的方法
		Zi1 zi=(Zi1)lao;//向下转型(强转)
		zi.method();
		zi.function();
		zi.show();
		
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章