2021-07-16

TypeScript类与继承和修饰符public 、private 、protected 的详细讲解

1.我理解的类

类可以理解成为一个模板,通过这个模板可以实例化某一个具体对象比如说:我们定义一个动物类,通过这个动物模板可以实例化成为猫或者其他具体的动物

2.类的基本使用

我们需要创建一个动物类;这个动物有姓名、【默认值小可爱,字符串类型】年龄、【默认值 20,数字类型】性别、【字符串类型】体重、【数字类型】爱好【爱好可有可无,如果有必须是一个数组类型的】这个动物类还有一个say的实例方法下面我们就开始实现
class Animails { name: string age: number gender: string weight: string likes?: Array<any> //爱好这个属性可有可无,如果有必须是数组类型 // 定义构造函数:为了将来实例化对象的时候, // 构造器直接对属性进行初始化 // 需要给名称默认值小可爱、年龄默认值age=20 constructor(  name: string = '小可爱',  age: number = 20,  gender: string,  weight: string,  likes?: Array<any> ) {  // 初始化属性中的数据  this.name = name  this.age = age  this.gender = gender  this.weight=weight } // 定义实例方法 say() {  console.log(   `大家好我是${this.name},   今年${this.age}岁了,   性别:${this.gender},   体重:${this.weight},  `); }}// 实例化对象let pig = new Animails('猪猪侠', 10, '男', '30kg');pig.say();//调用实例方法

3.实例化类的注意点

当类中的属性都有默认值时,实例化对象的时候,可以不用进行进行初始化。类中的属性如果没有默认值,不是可选属性。必须一一赋值(初始化)就是说:我们必须对构造器中的属性进行一一赋值除非构造器中有默认值
class Animails { name: string age: number constructor(  name: string = '小可爱',  age: number = 20, ) {  // 初始化属性中的数据  this.name = name  this.age = age } // 定义实例方法 say() {  console.log( `大家好我是${this.name}, 今年${this.age}岁了, `); }}// 实例化对象let pig = new Animails();pig.say();//调用实例方法

4.类与类之间的继承

A类继承了B类,那么A类叫做子类;B类叫做基类子类--->又叫派生类基类--->又叫父类或者超类
下面这个例子我们将子类MySon将会去继承Father父类。子类有属于自己的方法sonsay;子类可以去调用父类的方法super.say('子类');同时我们在子类中将会去重写父类的方法
// 我们定义了一个超类【父类】class Father { // 定义属性 name: string age: number // 定义构造函数 constructor(name: string, age: number) {  // 初始化属性中的数据  this.name = name  this.age = age } // 定义实例方法 say(str:string) {  console.log( `大家好我是${this.name}, 今年${this.age}岁了,${str}呼喊的我 `); }}// 子类去继承了父类class MySon extends Father { // constructor中的参数必须要满足父类。 // 除非父类有默认参数或者父类中的属性不是必须属性。 constructor(name: string, age: number) {  // super调用父类中的构造函数  super(name,age) } // 子类中自己的实例方法 sonsay() {  console.log('我是子类哈哈');  //调用父类中的实例方法  super.say('子类'); } // 重写父类的方法 say(name:string) {  console.log(`我重写了父类的方法我是${name}`) }}// 进行实例化let xiaoming = new MySon('小明', 19);// 进行方法调用 xiaoming.sonsay();xiaoming.say('小明');

5.修饰符的理解

修饰符:主要用于描述类中的成员(属性、方法、构造函数,)的可访问行当一个类的成员变量没有修饰的时候,默认的就是 public 进行修饰。外界是可以进行访问的。任何位置都可以访问类中的成员private 属性【只能够】在父类的内部直接进行访问;class Person{ age:10 // private 属性只能够 在类的内部 进行访问; private name = "张三"  say() {  console.log("我的名字是"+this.name) }}

6.private的理解

如果父类定义的私有属性或者方法的时候,那么继承的子类是不可以访问父类中的私有属性和私有方法在实例化的时候也是不可以访问私有属性和私有方法子类继承父类后 访问父类属性通过this.属性名调用父类的方法 this.方法名下面我们看一下:子类是否可以访问父类中的私有属性?实例化后是否可以访问父类中的私有属性?
class Person { age: 10; // private 属性只能够在类的内部进行访问; private name = "张三"; say() {  //内部访问是ok的哈  console.log("我的名字是" + this.name); }}class Children extends Person { sayage() {  console.log('访问父类属性年龄',this.age) } // 下面这种访问是非法的会报错  sayname() {  console.log('访问父类属性姓名',this.name) }}var xm = new Children();xm.say();//我的名字是张三// 报错,因为name是父类私有的,// 实例化的时候不能够进行访问 console.log( xm.name )

7.protected 的理解

protected修饰的属性和方法是受保护的,只能够在父类和其子类中访问。实例化后是不能够访问protected所修饰的属性和方法
原文转载:http://www.shaoqun.com/a/881530.html

跨境电商:https://www.ikjzd.com/

vava:https://www.ikjzd.com/w/2780

预售:https://www.ikjzd.com/w/889

parenthood:https://www.ikjzd.com/w/2497


1.我理解的类类可以理解成为一个模板,通过这个模板可以实例化某一个具体对象比如说:我们定义一个动物类,通过这个动物模板可以实例化成为猫或者其他具体的动物2.类的基本使用我们需要创建一个动物类;这个动物有姓名、【默认值小可爱,字符串类型】年龄、【默认值20,数字类型】性别、【字符串类型】体重、【数字类型】爱好【爱好可有可无,如果有必须是一个数组类型的】这个动物类还有一个say的实例方法下面我们就开始
2021牛鱼嘴中秋节活动?清远牛鱼嘴中秋节有哪些好玩的活动?:http://www.30bags.com/a/429589.html
2021女儿节是几月几号?女儿节是什么节?:http://www.30bags.com/a/430858.html
2021女生毕业旅行国内去处 毕业和闺蜜一起去最美最文艺的地方:http://www.30bags.com/a/425073.html
2021女生毕业旅行国内去处 毕业季我与古城湖海有个约会:http://www.30bags.com/a/425055.html
口述:异地寻夫 却遭他和小三的毒打(4/4):http://lady.shaoqun.com/a/123608.html
她被架起腿然后前后夹击 啊好深好涨两根同时:http://lady.shaoqun.com/m/a/247885.html
在车上被强,嗯啊,不要 好厉害 在车上被闺蜜的老公抱起来强进入 嗯啊:http://lady.shaoqun.com/m/a/274853.html
张开双腿迎合着两个男人 两个男人让我欲仙欲死:http://www.30bags.com/m/a/249842.html
2021粤港澳大湾区车展有哪些新车:http://www.30bags.com/a/506646.html
2021粤港澳大湾区车展开始了吗:http://www.30bags.com/a/506647.html
粤港澳大湾区深圳车展是什么时候:http://www.30bags.com/a/506648.html
深圳到雷公峡漂流攻略(多少公里+门票价格+怎么去):http://www.30bags.com/a/506649.html

No comments:

Post a Comment