什么是面向对象?
简单来讲 面向对象就是软件开发方法,一种编程范式。
js面向对象
封装 :将一堆方法和属性集合放到一起,不考虑内部实现,只考虑功能使用。
继承 :最大限度地重用代码
多态 :不同类的同名方法
js中常用的实现面向对象类的方法
class Person{
//父类
constructor(name,sex,age,like){
this.name = name;
this.sex = sex;
this.age = age
this.like = like
}
//类中添加方法
Say(){
console.log(`我叫${this.name},性别${this.sex},今年${this.age},爱好${this.like}`);
}
}
//创建实例对象
let zs = new Person('张三','男',20,'编程')
//通过实例调用方法
zs.Say(); // 我叫张三,性别男,今年20,爱好编程
继承
class Student extends Person {
//子类继承父类
sick;
constructor(name,sex,age,like,sick){
super(name,sex,age,like);
this.sick = sick
}
Say(){
return `我的名字是${this.name},性别${this.sex},年龄${this.age},爱好${this.like},讨厌${this.sick}`
}
}
let stu = new Student('张三','男',18,'编程','掉头发')
console.log(stu.Say()); // 我的名字是张三,性别男,年龄18,爱好编程,讨厌掉头发
- 上面实例中,Person 是父类,Student 是子类,它通过extends关键字,继承了Person类的所有属性和方法。
- super这个关键字,既可以当作函数使用,也可以当作对象使用。