首页 > 编程笔记 > JavaScript笔记
阅读:2
JavaScript继承的用法(附带实例)
继承是面向对象编程中非常重要的概念,它使得我们可以在一个类中直接使用另一个类的属性和方法。
在讲解继承的过程中,我们将重点介绍三个方面的内容:属性继承、方法继承以及创建类的私有属性和方法。这些内容将帮助读者更好地理解和应用继承的概念,提升编程能力。
在属性继承的过程中,子类会继承父类的所有属性。这意味着,子类可以像父类一样使用这些属性,而不需要重新定义。这大大简化了代码的编写和维护过程,减少了重复劳动。
以下代码是创建一个父类的示例:
继承的语法是使用 extends 关键字实现,语法如下:
在继承的过程中,constructor() 方法里面必须调用 super() 方法,这里的 super() 表示调用父类的 constructor() 方法。
上述代码中的 super() 表示调用父类 Person 中的 constructor(),父类中的 constructor() 方法同样需要接收 name 和 age 参数,最终实现属性继承。
Student 子类通过 extends 关键字实现继承之后,可直接使用父类中的方法,示例代码如下:
无论是开发大型项目还是个人独立开发,掌握类方法的继承都能极大地提高编码工作的便利性和效率。
注意,在子类的 constructor() 构造器中,name 和 age 这两个参数用于继承父类,而 grade 参数是 Student 子类的私有属性。
在挂载私有属性的子类中,需要注意一个语法规则,私有属性必须在 super() 函数之后初始化。这是一个关键的语法规则,帮助我们确保私有属性的正确使用。
在讲解继承的过程中,我们将重点介绍三个方面的内容:属性继承、方法继承以及创建类的私有属性和方法。这些内容将帮助读者更好地理解和应用继承的概念,提升编程能力。
属性继承
在面向对象的编程中,属性继承是一种强大的机制,它支持子类继承父类的属性,使得代码更加灵活和可复用。在属性继承的过程中,子类会继承父类的所有属性。这意味着,子类可以像父类一样使用这些属性,而不需要重新定义。这大大简化了代码的编写和维护过程,减少了重复劳动。
以下代码是创建一个父类的示例:
class Person { constructor(name, age) { this.name = name; this.age = age; } } const tom = new Person("Tom", 25); console.log("tom")上述代码创建了一个 Person 父类,并且在父类中有 name 和 age 这两个属性,接下来我们再创建一个 student 类,使 student 类继承于 Person 类。
继承的语法是使用 extends 关键字实现,语法如下:
class 子类名 extends 父类根据继承语法创建 student 类,示例代码如下:
class Student extends Person { constructor(name, age) { super(name, age); } } const jerry = new Student("Jerry", 18); console.log(jerry)上述代码中,constructor() 方法是 Student 自身的构造器,用于接收在 new Student() 过程中传入的 name 和 age 属性。
在继承的过程中,constructor() 方法里面必须调用 super() 方法,这里的 super() 表示调用父类的 constructor() 方法。
上述代码中的 super() 表示调用父类 Person 中的 constructor(),父类中的 constructor() 方法同样需要接收 name 和 age 参数,最终实现属性继承。
方法继承
接下来我们在前面创建的 Person 父类中,新增一个 sayHello() 方法,示例代码如下:class Person { constructor(name, age) { this.name = name; this.age = age; } sayHello() { console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`); } }
Student 子类通过 extends 关键字实现继承之后,可直接使用父类中的方法,示例代码如下:
class Student extends Person { constructor(name, age) { super(name, age); } } const jerry = new Student("Jerry", 18); jerry.sayHello(); // 输出:Hello, my name is Jerry and I am 18 years old.继承方法相对来说较为简单,通过子类的实例对象直接调用父类中的方法即可。
无论是开发大型项目还是个人独立开发,掌握类方法的继承都能极大地提高编码工作的便利性和效率。
创建类的私有属性和方法
接下来,我们在 Student 子类中定义私有属性 grade 和私有方法 study(),示例代码如下:class Student extends Person { constructor(name, age, grade) { super(name, age); this.grade = grade; } study() { console.log(`${this.name} is studying in grade ${this.grade}.`); } } const jerry = new Student("Jerry", 18, "6th"); jerry.sayHello(); // 输出:Hello, my name is Jerry and I am 18 years old. jerry.study(); // 输出:Jerry is studying in grade 6th.jerry.sayHello() 是继承父类 Person 中的方法,输出的是姓名和年龄,而 jerry.study() 是 Student 子类私有方法,输出的是姓名和年级。
注意,在子类的 constructor() 构造器中,name 和 age 这两个参数用于继承父类,而 grade 参数是 Student 子类的私有属性。
在挂载私有属性的子类中,需要注意一个语法规则,私有属性必须在 super() 函数之后初始化。这是一个关键的语法规则,帮助我们确保私有属性的正确使用。