class-为子类挂载独有的实例属性和实例方法|学习笔记

简介: 快速学习 class-为子类挂载独有的实例属性和实例方法

开发者学堂课程【React 入门与实战class-为子类挂载独有的实例属性和实例方法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/585/detail/8100


class-为子类挂载独有的实例属性和实例方法


一、为子类挂载独有的实例属性和方法

class Person{
constructor(name,age){

this.name = name

this.age = age

}

sayHello(){

console.log(‘大家好’)

}

}

class American extends Person{

constructor(name,age){

//问题1:为什么一定要在 constructor 中调用 super

//答案:因为如果一个子类,通过 extends 关键字继承了父类。那么在子类constructor 构造函数中,必须优先调用 super()

//问题2super 是什么东西?

//答案:super 是一个函数,而且它是父类的构造器,子类中的 super 其实就是父类中,constructor 构造器的一个引用

//问题3:为什么调用了 super 之后,a1 实例的 name age 都变成了 undefined 了?

super(name,age)

}

}

const a1 = new American(‘Jack’,20)

console.log(a1)

a1.sayHello()

class Chinese extends Person{

//name姓名

//age 年龄

//IDNumber 身份证号 【中国人独有】 既然是独有的,就不适合挂载到父类

constructor(name,age, IDNumber){

//语法规范,在子类中,this 只能放到 super 之后使用

this.IDNumber = IDNumber

super(name,age)

}

}

const c1 = new American(‘张三’,20’130428*******’)

console.log(c1)

c1.sayHello()

实例属性:是通过 new 出来的实例访问到的属性

class Animal{

//类中的构造器

constructor (name,age)

{

this.name=name; // 实例属性

this.age=age; // 实例属性

}

}

console.log(a1.name)

console.log(a1.age)

实例方法:挂载到原型对象 prototype 上的方法

function Person(name,age)

{

this.name=name;

this.age=age;

}

//实例方法

Person.prototype.speak=function()

{

console.log("Person的实例方法")

}

p1.speak();

实例方法在调用时 通过创建出的对象调用

相关文章
|
2月前
|
搜索推荐
如何在构造函数中为类的实例添加方法?
在实际开发中,要根据具体的场景和需求来选择合适的方式来为类的实例添加方法,以确保代码的可读性、可维护性和性能。
|
2月前
|
设计模式
在静态方法中访问类的实例属性和方法时会发生什么?
总之,静态方法主要用于处理与类本身相关的操作和逻辑,不应该直接访问类的实例属性和方法。如果需要在静态方法中使用与实例相关的信息,应该通过合理的参数传递或其他设计模式来实现,以保持代码的清晰性和面向对象设计的原则。
67 8
|
3月前
|
设计模式 数据处理
|
6月前
|
Java 开发者
实例方法与静态方法的区别与使用场景
实例方法与静态方法的区别与使用场景
|
7月前
|
Java 编译器 数据处理
JavaSE——面相对象高级一(4/4)-继承相关的注意事项:权限修饰符、单继承、Object类、方法重写、子类访问成员的特点......
JavaSE——面相对象高级一(4/4)-继承相关的注意事项:权限修饰符、单继承、Object类、方法重写、子类访问成员的特点......
67 0
|
8月前
|
JavaScript 前端开发
js继承的超详细讲解:原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承、class继承
js继承的超详细讲解:原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承、class继承
162 0
|
设计模式 安全 Java
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
称为类 B 继承类 A 特点: B类的对象可以使用 A类的属性和方法 优点: 代码复用.重复相同的代码不用多次书写. 名词: 类A: 父类 基类 类B: 子类 派生类 2. 单继承和多层继承[理解] 单继承: 如果一个类只有一个父类,把这种继承关系称为单继承 多继承: 如果一个类有多个父类,把这种继承关系称为多继承 多层继承: C–> B --> A 3. 子类重写父类的同名方法[掌握] 重写: 子类定义和父类名字相同的方法. 为什么重写: 父类中的方法,不能满足子类对象的需求,所以
571 1
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
|
Java 开发者
Class 类对象的三种实例化模式|学习笔记
快速学习 Class 类对象的三种实例化模式
194 0
Class 类对象的三种实例化模式|学习笔记
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
|
JavaScript
JS面向对象继承创建和使用
JS面向对象继承创建和使用
113 0