在这里写下自己对多态的一点理解
多态的意思就是子类存在和父类方法相同的方法,但是方法实现不一样,举个例子:你和你爸都有理发这个行为,但是你们的理完发发型就可能不一样。总的来说就是相同方法不同实现。
多态需要满足哪些条件呢?
第一个,子类必须重写父类的方法
第二个,要有向上转型的过程
先把代码贴上来
父类
public class Father {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void hairCut(Father temp) {
System.out.println(temp.getName()+"理发,理了个寸头");
}
}
子类
public class Son extends Father {
@Override
public void hairCut(Father temp) {
// TODO Auto-generated method stub
System.out.println(this.getName()+"也在理发,理了个杀马特发型");
}
}
测试类
public class Demo {
public static void main(String[] args) {
Son son=new Son();
son.setName("儿子");
son.hairCut(son);
}
}
运行结果是:儿子也在理发,理了个杀马特发型
这里子类重写了父类的hairCut方法,参数列表是Father类型的参数,因为这样无论你传进来的是Father的哪个子类对象,都能满足,可以增加代码的复用性和可扩展性