当前位置:网站首页>Introduction to TS, constructor and its this, inheritance, abstract class and interface
Introduction to TS, constructor and its this, inheritance, abstract class and interface
2022-07-05 20:57:00 【qq_ forty-six million three hundred and two thousand two hundre】
Class
class Person{
// No, static Keywords are the attributes and methods of the instance , It can only be accessed and modified through instances 、 call
name: string = 'tm' // Equate to name='tm'
age: number = 18 // Equate to age=18
// Yes readonly Keyword is a read-only property , Do not modify
// readonly age: number = 18
sayHellow() {
console.log('hellow');
}
// Yes static Keyword is a class attribute ( Static attribute ) And class methods ( Static methods ), It can only be accessed and modified through the class name 、 call
static sex: string = ' Woman ' // Equate to static sex=' Woman '
// readonly When decorating class properties , Must be on static Back
// static readonly sex: string = ' Woman '
static sayHellow() {
console.log('static--hellow');
}
}
console.log(Person.sex);// Woman
Person.sayHellow() //static--hellow
const person1 = new Person()
console.log(person1.name, person1.age); //tm 18
person1.sayHellow()//hellow
Constructor and its this
class Dog{
name: string
age: number
// this Always point to the current instance object
constructor(name: string, age: number) {
this.name = name
this.age = age
}
// this Always point to the current call instance object
bark() {
console.log(this.name);
}
}
// Once the use new Create objects , Will call Dog Of constructor Method
const dog1 = new Dog(' Little black ', 3)
const dog2 = new Dog(' The small white ', 6)
dog1.bark() // Little black
dog2.bark() // The small white
Inheritance and abstract classes
//abstract Keyword decorated class is abstract class , Abstract classes are classes that are designed to be inherited , Can't be used to create objects
abstract class Animal{
name: string
age: number
constructor(name: string, age: number) {
this.name = name
this.age = age
}
//abstract The method of keyword modification is abstract method , Abstract methods have no method bodies , Abstract methods can only be defined in abstract classes , Subclasses must override abstract methods
abstract sayHellow():void
}
// If used extends keyword , be Animal Parent class ,Dog Subclass ; It is equivalent to copying the properties and methods of the parent class into the child class
class Dog extends Animal{
// Subclasses can also add methods and properties by themselves
sex: string
constructor(name: string, age: number, sex: string) {
super(name, age)// Call the constructor of the parent class
this.sex = sex
}
sayHellow() {
console.log(' The dog is barking ');
}
run() {
console.log(' The dog is running ');
}
}
class Car extends Animal{
// Override of parent method
sayHellow() {
console.log(' The cat is barking ');
}
}
const dog = new Dog(' Dogs ', 5, ' Woman ')
console.log(dog.sex); // Woman
dog.sayHellow()// The dog is barking
dog.run()// The dog is running
const car = new Car(' Cat and cat ', 2)
car.sayHellow()// The cat is barking
Interface
// All attributes in an interface cannot have actual values , All methods are abstract methods
// Interface is mainly to define a certain standard , Restricted classes must meet this standard
// Interface is ts Peculiar ,js There is no concept of interface in
interface myInter{
name: string
sayHellow():void // The function does not return a value
}
class MyClass implements myInter{
name: string
constructor(name: string) {
this.name = name
}
sayHellow() {
console.log('aaa')
}
}
边栏推荐
- Analyze the knowledge transfer and sharing spirit of maker Education
- SYSTEMd resolved enable debug log
- AITM 2-0003 水平燃烧试验
- Chemical properties and application instructions of prosci Lag3 antibody
- 中国的软件公司为什么做不出产品?00后抛弃互联网;B站开源的高性能API网关组件|码农周刊VIP会员专属邮件周报 Vol.097
- 解析五育融合之下的steam教育模式
- 实现浏览页面时校验用户是否已经完成登录的功能
- How to open an account online for futures? Is it safe?
- AITM2-0002 12s或60s垂直燃烧试验
- 10000+ 代码库、3000+ 研发人员大型保险集团的研发效能提升实践
猜你喜欢
10000+ 代码库、3000+ 研发人员大型保险集团的研发效能提升实践
Cutting edge technology for cultivating robot education creativity
Typhoon is coming! How to prevent typhoons on construction sites!
Duchefa cytokinin dihydrozeatin (DHZ) instructions
Duchefa s0188 Chinese and English instructions of spectinomycin hydrochloride pentahydrate
王老吉药业“关爱烈日下最可爱的人”公益活动在南京启动
When steam education enters personalized information technology courses
ProSci LAG-3 重组蛋白说明书
Duchefa丨S0188盐酸大观霉素五水合物中英文说明书
教你自己训练的pytorch模型转caffe(三)
随机推荐
启牛2980有没有用?开户安全吗、
Viewrootimpl and windowmanagerservice notes
Which is the best online collaboration product? Microsoft loop, notion, flowus
字典树简单入门题(居然是蓝题?)
PVC 塑料片BS 476-6 火焰传播性能测定
When a user logs in, there is often a real-time drop-down box. For example, entering an email will @qq com,@163. com,@sohu. com
Abnova cyclosporin a monoclonal antibody and its research tools
Prosci LAG-3 recombinant protein specification
AITM 2-0003 水平燃烧试验
Typhoon is coming! How to prevent typhoons on construction sites!
systemd-resolved 开启 debug 日志
Popular science | does poor English affect the NPDP exam?
MySQL InnoDB架构原理
LeetCode_哈希表_困难_149. 直线上最多的点数
示波器探头对信号源阻抗的影响
ODPs next map / reduce preparation
教你自己训练的pytorch模型转caffe(三)
大二下个人发展小结
Binary search
LeetCode: Distinct Subsequences [115]