//类
class Person { //创建一个类
public name; //属性 public公共方法也是默认方法类外部也可以访问
protected age; // protected类的内部与子类可以访问到
private weight; // private 私有的 内部可以访问
//类的构造函数 只调用一次
eat() { //方法 默认与public相同
console.log("i'am eating "); //只有内部可以访问
}
constructor(public height:string , height2){ //和上面的差不多 不过不能省略public
console.log("haha");
}
}
// extends 声明继承关系 可以继承父类的所有属性与方法
class Employee extends Person {
constructor(name:string,code:string){
super(name); //super 调用父类的构造函数 子类必需要有父类
console.log("xixi");
this.code=code;
}
code:string;
work () {
super.eat(); //super 调用父类 其他方法
this.doWork();
}
private doWork(){ //设为私有变量,就只能先eat再doWork
console.log("im working")
}
}
var e1=new Employee("name","1"); //可以获得所有继承的值
e1.work();
var p1=new Person(); //实例化一个类
p1.eat();
//类的方法 主要就是class 创建一个类 然后创建属性方法 extends 用于继承 super用于调用父类函数的构造函数或者
var workers:Array<Person>=[]; //泛型 只能选用制定的类型
workers[0]=new Person("zhangsan");
workers[1]="2";
console.log(workers);
// 泛型 不知道和any有啥区别
// 接口 不同类共同特性提取出来 用interface定义
interface Animal {
eat();
}
class Sheep implements Animal{ //implements来实现
eat() {
console.log("i eat grass");
}
}
class Tiger implements Animal{
eat(){
console.log("i eat meat");
}
}
//接口