1 類的定義
class Person{
name:string;
age:number;
constructor(name:string,age:number){
this.name = name;
this.age = age;
}
print(){
return this.name+":"+this.age
}
}
var p = new Person("zhangsan",20)
console.log(p.print)
2 類的繼承
class Student extends Person{
cardnumber:string;
school:string;
constructor(cardnumber:string,school:string){
super("zhangsan",20)//執行父級的構造函數
this.cardnumber = cardnumber;
this.school=school
}
dohomework(){
return this.name+"今年"+this.age+"歲,就讀於"+this.school+"編號"+this.cardnumber
}
}
var stu1 = new Student("10001","北京大學")
3 訪問修飾符:(要明白用這個聲明,什麼時候可以訪問,什麼時候不可以訪問)
(1)public/private/protected
class Person{
public name:string;
private age:number;
protected email:string;
constructor(name:string,age:number){
this.name = name;
this.age = age;
this.email = mail;
}
print(){
return this.name+":"+this.age
}
}
var p = new Person("zhangsan",20)
console.log(p.name)
console.log(p.age)
console.log(p.email)
此時只有p.name可以訪問
(2)在繼承中
class student extends Person {
show(){
console.log(this.name,this.age,this.email)//此時this.age不能訪問
}
}
public:任何地方可以訪問
private:私有的,只有自己可以訪問(例如爸爸與兒子,爸爸的私房錢是私有的,兒子不可以用)
protected:自己跟子類可以訪問(例如爸爸的房子,兒子也可以用)
4 靜態屬性和靜態方法
class Person{
//實例屬性
name:string;
static age:number;//靜態屬性
email:string;
constructor(name:string,age:number,email:string){
this.name = name;
this.age = age;
this.email = email;
}
//實例方法
print(){
return this.name+":"+this.age
}
//靜態方法
static show(){
console.log("show 方法")
}
}
調用靜態方法:
Person.show();
//調用實例方法
var p1 = new Person("zhangsan",22,"ss.qq.com")
console.log(p1.print())
5 多態
class Animal{
eat(){
console.log("animal eat")
}
}
class Cat extends Animal{
eat(){
console.log("貓喫魚")
}
}
class Dog extends Animal{
eat(){
console.log("狗喫肉")
}
}
var c1 = new Cat();
c1.eat()
抽象類/抽象方法
(1)抽象類是提供其他類繼承的基類(父類),不能直接被實例
(2)抽象方法只能包含在抽象類中,抽象類中可以包含抽象方法和非抽象方法
(3)子類繼承抽象類,實現抽象方法
(4)定義
abstract class Animal{
abstract eat();
run (){
console.log("run run run")
}
}
class Cat extends Animal{
eat(){
console.log("貓喫魚")
}
}
class Cat extends Animal{
eat(){
console.log("狗喫肉")
}
}
var c1 = new Cat()
c1.eat()
var d1 = new Dog()
d1.eat()