当前位置: 首页 > 工具软件 > Upcast > 使用案例 >

【JAVA学习路-think in java】p155:利用upcast将改变的事物和不变的事物分离

广宏远
2023-12-01
package pkg;
//base
class Furniture{
	void sayHello() {
		System.out.println("Furniture: hello!");
	}
}
//extends 1
class Chair extends Furniture{
	void sayHello() {
		System.out.println("Chair: hello!");
	}
}
//extends 2
class Desk extends Furniture{
	void sayHello() {
		System.out.println("Desk: hello!");
	}
}

// main
public class p155 {

	static void furSayHello(Furniture fur) {//can have a different name
		fur.sayHello();
	}
	
	public static void main(String[] args) {
		Furniture[] arrFur= {new Furniture(),new Chair(),new Desk()};
		for(Furniture temp:arrFur)
			furSayHello(temp);
	}
}

OUTPUT:

Furniture: hello!
Chair: hello!
Desk: hello!
 

总结:在static函数furSayHello中把基类Furniture作为输入参数,而extends类中,可以有新的方法来覆盖基类方法,从而实现仅仅改变extend类中的方法,而不必改动使用它的furSayHello部分。

 
 类似资料: