多态的浅显的理解

下面的例子将演示一下多态的作用:
public abstract class Wine {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract String drink();
}
写一个他的子类
public class MT extends Wine {
public MT() {
setName("茅台");
}
@Override
public String drink() {
return "拿碗大碗喝酒.."+getName();
}
}
public class JNC extends Wine {
public JNC() {
super.setName("剑南春");
}
@Override
public String drink() {
return "拿小酒杯小酌"+getName();
}
}
写一个人类,人类中有一个方法,就是喝酒,我们只需要调用persin_drink()方法,就可以喝酒到我们想喝的任何一种酒(前提是我们要声明一个这种酒的类),大家看里面的的参数,是一个wine的父类,我们只需要传入一个wine的子类就可以调用子类的重写的drink方法,相比于我们之前,可能是用if,switch判断用户喝什么酒,这样也能写,但是当你需要往里面重新添一种新品种的酒,就要重写原有的方法,不利于维护和扩展,这才是我们用多态的美妙之处!!
public class Person {
public String name;
public void persin_drink(Wine wine) {
System.out.println(name+wine.drink());
}
}
public class Test {
public static void main(String[] args) {
/*
* 人 喝 酒
*
* 人
* 姓名
* 喝酒(茅台 mt){
*
* }
* 喝酒(老村长 lcz){
*
* }
*
*/
Person person = new Person();
person.name="无语";
MT mt = new MT();
JNC jnc = new JNC();
/**
或者
Wine mt = new Mt();
Wine jnc = new JNC();
*/
person.persin_drink(mt);
}
}
基本没有写博客的经验,整理粗心,不过真心能帮到大家!!
1万+

被折叠的 条评论
为什么被折叠?



