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