Day5_VSCODE_JavaScript_ (재정리) _상속의 활용
2023. 4. 11. 13:04ㆍJavascript
상속
부모 클래스
class Animal {
constructor(color) {
this.color = color;
}
eat() {
console.log('먹는다!')
}
sleep() {
console.log('잔다!')
}
}
상속 클래스 만들기
class Dog extends Animal {
play(){
console.log('논다!');
}
}
//확인
const Rucy =new Dog('white')
console.log(Rucy)
Rucy.eat();
Rucy.sleep();
Rucy.play();
//2번째 예시
class Cat extends Animal{
constructor(color,name){
super(color); //부모 쪽 컬러를 사용시 부모쪽으로 보내는 법
this.name = name
}
//오버라이딩
eat(){
console.log('맛있게 먹는다!')
}
}
const Horang = new Cat('black','호랭이')
console.log(Horang)
Horang.eat();
연습 문제
[문제]
정직원과 아르바이트를 나타낼 수 있는 클래스를 생성 하자
[조건]
클래스 2개 만들기:FullTimeEmployee / PartTimeEmployee
직원 정보: 이름, 부서명, 한달 근무 시간
급여: 정직원(2만원), 아르바이트(1만원)
매달 직원들의 정보를 이용해서 한달 급여를 계산하는 메소드를 구현
메소드 이름(calculatePay())
예시) kim.calculatePay() -> 한달 급여
클래스 3개 (부모 1개, 자식이 직원,아르바이트 급여)
본인이 작성한 코드
class total {
constructor (name,major,time){
this.name = name
this.major = major
this.time = time
}
}
class FullTimeEmployee extends total{
earning(){
const earn = (this.time*20000)
console.log(typeof(this.time))
console.log(`${this.name}의 한달 급여는 : ${earn}`)
}
}
class PartTimeEmployee extends total{
earning(){
const earn = (this.time * 10000)
console.log(`${this.name}의 한달 급여는 : ${earn}`)
}
}
const a = new FullTimeEmployee('최영현','몰라',5)
console.log(typeof(a.time))
a.earning();
b = new PartTimeEmployee('정진우','가나다',8)
b.earning();
강사님 코드
class employee{
constructor(name,department,hoursPerMonth,Payrate){
this.name=name
this.department=department
this.hoursPerMonth=hoursPerMonth
this.Payrate=Payrate
}
calculatepay(){
return this.hoursPerMonth * this.Payrate
}
}
class FullTimeEmployee2 extends employee{
static Pay_Rate = 20000; //고정적이기때문에 메모리에 먼저
constructor(name,department,hoursPerMonth){
super(name,department,hoursPerMonth,FullTimeEmployee2.Pay_Rate);
}
}
class PartTimeEmployee2 extends employee{
static Pay_Rate = 10000; //고정적이기때문에 메모리에 먼저
constructor(name,department,hoursPerMonth){
super(name,department,hoursPerMonth,PartTimeEmployee2.Pay_Rate);
}
}
const kim = new FullTimeEmployee2('김사과','개발',160);
const lee = new PartTimeEmployee2('이메론','디자이너',100)
console.log(kim.calculatepay());
console.log(lee.calculatepay());
728x90
'Javascript' 카테고리의 다른 글
Day6_VSCODE_JavaScript_이벤트 (0) | 2023.04.12 |
---|---|
Day5_VSCODE_JavaScript_Wrapper 객체 (0) | 2023.04.11 |
Day5_VSCODE_JavaScript_ (재정리) _클래스 심화 (0) | 2023.04.11 |
Day5_VSCODE_JavaScript_ (재정리) _객체 활용법 (0) | 2023.04.11 |
Day5_VSCODE_JavaScript_ (재정리) _함수 작성법 (0) | 2023.04.10 |