一、多态的含义
不同数据类型进行同一个操作,表现出不同的行为,就是多态的体现
二、传统意义的多态
function Shape{
getArea(){}
}
function Circle extends Shape{
getArea(){
return 100
}
}
function Rectangle extends Shape{
getArea(){
return 1000
}
}
function calcArea(shape:Shape){
return shape.getArea()
}
const r = new Rectangle()
const c = new Circle()
calcArea(r)
calcArea(c)
传统意义的多态有三要素:
- 继承是前提
- 子类要对父类的方法进行重写
- 父类的引用指向子类实例
三、js中的多态
function sum(m,n){
return m+n
}
sum(10,20)
sum("abc","cba")
上述的代码是符合多态的定义的
所以js中是有多态的,但和传统的多态不一样,因为它很灵活,所以可以传入不同的数据类型执行同一个方法。