WEB/Java Script

[Java Script] 클래스와 상속

자바칩 프라푸치노 2021. 4. 23. 20:56

클래스 

2021.04.23 - [WEB/Java Script] - [Java Script] 객체 생성자/ 프로토타입 공유/ 상속

 

[Java Script] 객체 생성자/ 프로토타입 공유/ 상속

객체 생성자 function Animal(type,name,sound){ this.type = type; this.name = name; this.sound = sound; this.say = function(){ console.log(this.sound); } } const dog = new Animal('개', '멍멍이','멍멍'..

sso-feeling.tistory.com


위의 내용을 클래스로 표현을 해보았다.

class Animal{
  constructor(type,name, sound){
    this.type = type;
    this.name = name;
    this.sound = sound;
  }
  // 함수를 만들게 되면 자동으로 프로토타입으로 설정이 된다.
  say(){
    console.log(this.sound);
  }
}

const dog = new Animal ('개', '멍멍이','멍멍');
const cat = new Animal ('고양이', '야옹이','야옹');
dog.say();
cat.say();

자바의 클래스랑 거의 똑같다

휴 다행

2020.10.07 - [JAVA/java 이론] - [자바JAVA] 객체지향개념1 - 클래스와 객체, 클래스 접근 제어자, 메서드 구성

 

[자바JAVA] 객체지향개념1 - 클래스와 객체, 클래스 접근 제어자, 메서드 구성

안녕하세요 자바칩 프라푸치노입니다. 오늘은 자바에서 객체 지향 개념1번 클래스와 객체에 대해 알아보겠습니다. 이제껏 포스팅했던 이론들은 라인 순서대로 코드가 진행되는 절차지향 이었

sso-feeling.tistory.com

class Animal{
  constructor(type,name, sound){
    this.type = type;
    this.name = name;
    this.sound = sound;
  }
  // 함수를 만들게 되면 자동으로 프로토타입으로 설정이 된다.
  say(){
    console.log(this.sound);
  }
}
class Dog extends Animal{
  constructor(name,sound){
    super('개',name, sound);
  }
}

class Cat extends Animal{
  constructor(name,sound){
    super('고양이',name, sound);
  }
}

const dog = new Dog('멍멍이', '멍멍');
const cat = new Cat('야옹이', '야옹');
dog.say();
cat.say();

 

상속을 받을때도 더 쉽게 사용할 수 있다. 

extends로 상속을 받아주고

constructor에서는 super(조상)의 constructor을 호출한다.

 


예제

class Food{
  constructor(name){
    this.name = name;
    this.brands = [];
  }
  // 메서드
  addBrand(brand){
    this.brands.push(brand)
  }
  print(){
    console.log(`${this.name}을 파는 음식점들 : `)
    console.log(this.brands.join(', '));
  }
}

const pizza = new Food('피자');
pizza.addBrand('피자헛');
pizza.addBrand('도미노피자');
const chicken = new Food('치킨');
chicken.addBrand('굽네');
chicken.addBrand('bbq');

pizza.print();
chicken.print();

 

728x90