七叶笔记 » golang编程 » 多态的理解

多态的理解

多态

定义: 指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)

作用:消除类型之间的 耦合关系 ;

存在的必要条件:

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;

}

}

相关文章