以下是学习韩顺平老师的JAVASE多态部分后的自我复习(素材来自于公开课件,侵删)
1.先看一个问题
- 在学习多态之前 , 我们应该如何处理这个问题?
- 解决方法比较重复且麻烦 , 一旦有新的动物和对应的食物就要不停地编写新的食物子类、动物子类 ; 代码的复用性低 , 而且不利于维护.
- 而多态可以帮助我们解决这个问题.
- 示例如下:
public class Animal {
private String name ;
public Animal(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
-----------------------------
public class Food {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Food(String name) {
this.name = name;
}
}
public class Meat extends Food {
public Meat(String name){
super(name);
}
}
---------------
public class Cat extends Animal{
public Cat(String name){
super(name);
}
}
public class Master {
private String name = "hcj";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Master(String name) {
this.name = name;
}
public void Feed(Animal animal , Food food){
System.out.println("主人" + name + "给" + animal.getName() + "喂" + food.getName());
}
public void Feed(Cat cat , Meat meat){
System.out.println("主人" + name + "给" + cat.getName() + "喂" + meat.getName());
}
}
-----------------------------