e 2 months ago
parent
commit
b3c8664c2c

+ 1 - 0
14.ts/3.编译选择/src/c.ts

@@ -2,6 +2,7 @@ console.log("这是第三个ts文件1");
 let c;
 c = 12;
 c = '1'
+
 let d = 10;
 console.log(c + d,'x')
 // document.getElementById

+ 1 - 1
14.ts/3.编译选择/src/hi.js

@@ -2,4 +2,4 @@ console.log("今天天气真好")
 const age = 10;
 // age = '20';
 
-console.log(age,'年龄');
+console.log(age,'年龄');

+ 29 - 0
14.ts/4.面向对象/dist/3.继承.js

@@ -0,0 +1,29 @@
+// (function(){})() 立即执行函数
+(function () {
+    class Money {
+        constructor(name, age) {
+            this.name = name;
+            this.age = age;
+        }
+        say() {
+            console.log(`你好${this.name}`);
+        }
+    }
+    /**
+     * 继承:
+     * 因因为想让多个子类同时继承父类中的属性及方法 所以采用继承
+     * 若子类中 定义的方法和父类相同 则称为:方法重写
+     * 若想添加新的方法 直接在子类中添加即可
+     */
+    class Child extends Money {
+        say() {
+            console.log(`今年${this.age}`);
+        }
+        hi() {
+            console.log("你好");
+        }
+    }
+    let person = new Child("LiLi", 20);
+    person.say();
+    person.hi();
+})();

+ 23 - 0
14.ts/4.面向对象/dist/4.super.js

@@ -0,0 +1,23 @@
+(function () {
+    class Animal {
+        constructor(name) {
+            this.name = name;
+        }
+        say() {
+            console.log(`这是一个${this.name}`);
+        }
+    }
+    /**
+     * super 调用父类中的属性
+     * 若子类要添加新的属性
+     * 子类的构造器需要对父类的构造器进行重新
+     */
+    class Cat extends Animal {
+        constructor(name, age) {
+            super(name);
+            this.age = age;
+        }
+    }
+    let cat1 = new Cat('小猫', 10);
+    console.log(cat1);
+})();

+ 21 - 0
14.ts/4.面向对象/dist/5.抽象类.js

@@ -0,0 +1,21 @@
+(function () {
+    /**
+     * 抽象类 与其他的类差别不大
+     * abstract
+     * 抽象类不是为了实例化对象
+     * 他是因为继承产生的
+     */
+    class Animal {
+        constructor(name) {
+            this.name = name;
+        }
+    }
+    class Child extends Animal {
+        say() {
+            console.log(`${this.name}`);
+        }
+    }
+    let child = new Child('熊猫');
+    console.log(child);
+    child.say();
+})();

+ 1 - 1
14.ts/4.面向对象/index.html

@@ -6,6 +6,6 @@
     <title>Document</title>
 </head>
 <body>
-    <script src="./dist/2.构造函数和this.js"></script>
+    <script src="./dist/5.抽象类.js"></script>
 </body>
 </html>

+ 32 - 0
14.ts/4.面向对象/src/3.继承.ts

@@ -0,0 +1,32 @@
+// (function(){})() 立即执行函数
+(
+    function() {
+        class Money {
+            name:string;
+            age:number;
+            constructor(name,age) {
+                this.name = name;
+                this.age = age;
+            }
+            say() {
+                console.log(`你好${this.name}`);
+            }
+        }
+        /**
+         * 继承:
+         * 因因为想让多个子类同时继承父类中的属性及方法 所以采用继承
+         * 若子类中 定义的方法和父类相同 则称为:方法重写
+         */
+        class Child extends Money {
+            say() {
+                console.log(`今年${this.age}`)
+            }
+            hi() {
+                console.log("你好")
+            }
+        }
+        let person = new Child("LiLi",20);
+        person.say();
+        person.hi()
+    }
+)()

+ 25 - 0
14.ts/4.面向对象/src/4.super.ts

@@ -0,0 +1,25 @@
+(function() {
+    class Animal {
+        name: string;
+        constructor(name:string) {
+            this.name = name;
+        }
+        say() {
+            console.log(`这是一个${this.name}`)
+        }
+    }
+    /**
+     * super 调用父类中的属性
+     * 若子类要添加新的属性
+     * 子类的构造器需要对父类的构造器进行重新
+     */
+    class Cat extends Animal {
+        age:number;
+        constructor(name:string,age:number) {
+            super(name);
+            this.age = age;
+        }
+    }
+    let cat1 = new Cat('小猫',10);
+    console.log(cat1)
+})()

+ 24 - 0
14.ts/4.面向对象/src/5.抽象类.ts

@@ -0,0 +1,24 @@
+(function() {
+    /**
+     * 抽象类 与其他的类差别不大
+     * abstract 
+     * 抽象类不是为了实例化对象
+     * 他是因为继承产生的
+     */
+    abstract class Animal {
+        name: string;
+        constructor(name:string) {
+            this.name = name;
+        }
+        // 抽象类只能定义方法体
+        abstract say():void
+    }
+    class Child extends Animal {
+        say() {
+            console.log(`${this.name}`)
+        }
+    }
+    let child = new Child('熊猫')
+    console.log(child)
+    child.say();
+})()