定义: 指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)
作用:消除类型之间的耦合关系;
存在的必要条件:
1.要有继承
2.要有重写
3.父类引用指向子类对象
理解:父类对象指向其子类对象即父类对象就是子类对象的上转型;
如下代码是实现接口的多态,还有抽象 重载 重构等;个人感觉主要是上转型的理解.
public class TestMyShap {
public static void main(String []args){
shap S;
square s=new square(5);
S=s;
System.out.println(S.area());
rectangle r=new rectangle (5,6,6);
S=r;
System.out.println(S.area());
}
}
interface shap{
public double area();
}//定义接口
class square implements shap{
double l;
public square(double l) {
super();
this.l = l;
}
public double area() {
// TODO Auto-generated method stub
double area=l*l;
return area;
}
}
class rectangle implements shap{
double l;
double h;
double w;
public rectangle(double l, double w, double h) {
super();
this.l = l;
this.h = h;
this.w = w;
}
public double area() {
// TODO Auto-generated method stub
double area=l*w;
return area;
}
}