一、定义一个Person类
//给Person类定义两个属性,name和age
class Person{
name:string;
age:number;
constructor(name:string,age:number){
this.name = name;
this.age = age;
}
getName():void{
console.log(this.name);
}
}
var p:Person = new Person("cheng",30)
p.getName();
二、extends继承
class Person{
name:string;
age:number;
constructor(name:string,age:number){
this.name = name;
this.age = age;
}
getName():void{
console.log(this.name);
}
}
class Student extends Person{
skill:string;
constructor(name:string,age:number,skill:string){
super(name,age);
this.skill = skill;
}
getInfo(){
this.getName();
console.log(this.age);
}
}
var s:Student = new Student("cheng",18,"typescript");
s.getInfo();
三、public,protected,private
public:公有 在类里面,子类,类外面都可以访问
protected:保护类型 在类里面,子类都都可访问,在类外部没法访问
private:私有 在类里面可以访问,子类,类外面都没法访问
Tip:属性不加修饰符 默认就是公有。
1-1 private 在类外部是不可以访问的,子类不可以访问
class Student{
private sayName():void{
console.log("name")
}
}
var s:Student = new Student();
s.sayName(); //error
class Person{
private sayName():void{
console.log("name")
}
}
class Student extends Person{
childSay(){
super.sayName() //error
}
}
var s:Student = new Student();
1-2 protected 子类中可以访问,类外部不可以访问
class Person{
protected sayName():void{
console.log("name")
}
}
class Student extends Person{
childSay(){
super.sayName()
}
}
var s:Student = new Student();
s.sayName(); //error
class Person{
public name:string;
age:number;
constructor(name:string,age:number){
this.name = name;
this.age = age;
}
getName():void{
console.log(this.name);
}
}
var cheng = new Person("cheng",19);
//public修饰的变量,在类里面,以及子类,类外部都能访问
console.log(cheng.name);