JAVA-インターフェースと継承(3)書き換え

親アイテム

親クラスItemには、effectというメソッドがあります

package property;

public class item {
    
    
	String name;
	int price;
	public void buy() {
    
    
		System.out.println("购买了" + name);
	}
	public void effect() {
    
    
		System.out.println("购买后的效果");
	}
}

サブクラスLifePotion

サブクラスLifePotionはItemを継承し、メソッド効果も提供します

package property;

public class lifepotion extends item{
    
    
	public void effect() {
    
    
		System.out.println("使用血瓶可以回血");
	}
	public static void main(String args[]) {
    
    
		lifepotion b = new lifepotion();
		b.effect();
	}
}

オブジェクトがエフェクトを呼び出すと、そのメソッドが出力されます

このような書き換えメカニズムがない場合はどうなりますか?

オーバーライドメカニズムがない場合、つまりLifePotionクラスがない場合、Itemを継承すると、すべてのメソッドを変更することはできません。

しかし、LifePotionは少し異なる機能を提供したいと考えています。この目標を達成するためには、Itemの継承をあきらめ、すべてのプロパティとメソッドを書き直してから、エフェクトを作成するときに少し変更を加えるしかありません。

これにより、開発時間とメンテナンスコストが増加します

演習-書き直し⭐⭐

クラスMagicPotionの青いボトルを設計し、Itemを継承し、エフェクトメソッドを書き直して、
「青いボトルを使用した後、魔法に戻ることができます」と出力します。

package property;

public class magicpotion extends item{
    
    
	public void effect() {
    
    
		System.out.println("使用蓝瓶后恢复蓝量");
	}
	public static void main(String args[]) {
    
    
		magicpotion a  = new magicpotion();
		a.effect();
	}
}

おすすめ

転載: blog.csdn.net/qq_17802895/article/details/108511598