1. 程式人生 > >淺探typescript(二)

淺探typescript(二)

class 類

class A{
   a: string;
   name:string;
   constructor(a:string,name:string){
        this.a = a;
        this.name = name;
   }
}

繼承

class B extends A{
    b: string;
    construstor(a,name){
        super(a,name);
        this.b = '456';
    }
}
//例項化
var b = new B('a','abc');
console.log(b.name);

修飾符靜態方法,不需要例項化處理,可直接通過類來呼叫

class Animal{
   static eat(){
        console.log('吃')
   }
}


Animal.eat();

ts中的三種修飾符

ts中三種修飾符 修飾屬性和方法 public private protected

  1. public 修飾屬性和方法是公共的,任何地方都可以訪問
  2. private 私有的 不能在外部宣告和使用
  3. protected 修飾屬性和方法是受保護的 區別是子類可以訪問

 

class Animal2{
        //public name:string; 
        //private name:string;  
        protected name:string;
        constructor(name:string){
            this.name = name;
        }
        public eat():string{
            return '吃老鼠';
        }
    }
    var a = new Animal2('abc') ;
    //a.name
    //a.eat()

    class Dog extends Animal2{
        constructor(name){
            super(name);
        }
        action():string{
            return this.name;   //呼叫父類的
        }
    }
    var d = new Dog('tom');
    d.action();

類實現介面

實現 implements

例如:

門是一個類 防盜門是屬於門的子類 防盜門新增一個報警器的功能

除了門,車也有報警器的功能

報警器提取出來,作為一個介面 門,車去實現它

首先定義報警器的介面

interface Alarm{
   sing();  //抽象空的方法   規範
}
interface Light{
   lightOn();
   lightOff();
}

定義門的類及實現防盜門繼承門

class Door{};
class SecurityDoor extends Door implements Alarm{
    sing(){
         console.log("sing...")
    }
}

一個類可以實現多個介面

 class Car implements Alarm,Light{
        sing(){
            console.log('....')
        }
        lightOn(){

        }
        lightOff(){
            
        }
    }

呼叫它們的方法

var s2 = new SecurityDoor();
    var car = new Car();
    s2.sing();
    car.sing()