JAVA -- 接口与继承(三)重写

父类Item

父类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,同时也提供了方法effect

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();
	}
}

谁的对象调用effect就打印谁的方法

如果没有重写这样的机制怎么样?

如果没有重写这样的机制,也就是说LifePotion这个类,一旦继承了Item,所有方法都不能修改了。

但是LifePotion又希望提供一点不同的功能,为了达到这个目的,只能放弃继承Item,重新编写所有的属性和方法,然后在编写effect的时候,做一点小改动.

这样就增加了开发时间和维护成本

练习-重写⭐⭐

设计一个类MagicPotion 蓝瓶,继承Item, 重写effect方法
并输出 “蓝瓶使用后,可以回魔法”

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