๐ ๋ถ๋ชจ Class
class Animal {
constructor(color) {
this.color = color;
}
eat() {
console.log("๋จน์!");
}
sleep() {
console.log("์๋ค");
}
}
โ์์ class 1
class Tiger extends Animal {}
const tiger = new Tiger("๋
ธ๋์ด");
console.log(tiger); //Tiger { color: '๋
ธ๋์ด' }
tiger.eat(); //๋จน์!
tiger.sleep(); //์๋ค
โ์์ class 2
class Dog extends Animal {
<u>play()</u> {
console.log("๋์~!");
}
}
const dog = new Dog("๋นจ๊ฐ์ด");
console.log(dog);
dog.eat();
dog.sleep();
<u>**dog.play();**</u>
๐ ์์ class์ ์๋ก์ด ์์ฑ์ ์ถ๊ฐํ๊ธฐ
class Dog extends Animal {
constructor(color, ownerName) {
<u>super(color);</u>
**this.ownerName = ownerName**;
}
play() {
console.log("๋์~!");
}
}
const dog = new Dog("๋นจ๊ฐ์ด", "Tom");
console.log(dog); //Dog { color: '๋นจ๊ฐ์ด', ownerName: 'Tom' }
๐ ์์ class์ ๋ฉ์๋ ๋ฐ๊ฟ์ฃผ๊ธฐ
class Dog extends Animal {
constructor(color, ownerName) {
super(color);
this.ownerName = ownerName;
}
play() {
console.log("๋์~!");
}
//์ค๋ฒ๋ผ์ด๋ฉ overriding ๋ฎ์ด์์ฐ๊ธฐ
eat() {
console.log('๊ฐ์์ง๊ฐ ๋จน๋๋ค.')
}
}
dog.eat(); //๊ฐ์์ง๊ฐ ๋จน๋๋ค.
๐ ๋ถ๋ชจ ๋ฉ์๋์ ์์ class์ ๋งค์๋๋ฅผ ์ถ๊ฐํด์ฃผ๊ธฐ
class Dog extends Animal {
constructor(color, ownerName) {
super(color);
this.ownerName = ownerName;
}
play() {
console.log("๋์~!");
}
eat() {
super.eat(); //๋จน์!
console.log("๊ฐ์์ง๊ฐ ๋จน๋๋ค."); //๊ฐ์์ง๊ฐ ๋จน๋๋ค.
}
}
dog.eat(); //๋จน์!
//๊ฐ์์ง๊ฐ ๋จน๋๋ค.
๐ฅ super( ) โ ๋ถ๋ชจํด๋์ค์ โ์์ฑ์โ
super. โ ๋ถ๋ชจํด๋์ค โ์์ฒดโ