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();

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

相关文章
|
25天前
|
Java 编译器 数据处理
JavaSE——面相对象高级一(4/4)-继承相关的注意事项:权限修饰符、单继承、Object类、方法重写、子类访问成员的特点......
JavaSE——面相对象高级一(4/4)-继承相关的注意事项:权限修饰符、单继承、Object类、方法重写、子类访问成员的特点......
29 0
|
Java 开发者
Class 类对象的三种实例化模式|学习笔记
快速学习 Class 类对象的三种实例化模式
134 0
Class 类对象的三种实例化模式|学习笔记
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
|
JavaScript 前端开发 开发者
class-创建类并通过 constructor 挂载实例属性|学习笔记
快速学习 class-创建类并通过 constructor 挂载实例属性
206 0
|
前端开发 开发者
class-子类访问父类上的实例方法|学习笔记
快速学习 class-子类访问父类上的实例方法
89 0
|
JavaScript 前端开发 Java
创建Class类的实例对象的三种方法
创建Class类的实例对象的三种方法
212 0
class-为子类挂载独有的实例属性和实例方法
class-为子类挂载独有的实例属性和实例方法
|
JavaScript 前端开发
class-创建类并通过constructor挂载实例属性
一、Class的基本使用 二、使用class关键字来创建对象 三、总结
|
C++ 小程序
c++类的实例化,有没有new的区别
A a; A * a = new a(); 以上两种方式皆可实现类的实例化,有new的区别在于: 1.前者在堆栈中分配内存,后者为动态内存分配,在一般应用中是没有什么区别的,但动态内存分配会使对象的可控性增强。
1183 0