728x90
반응형
왜 abstract를 쓰는가??
abstract는 객체를 실제 만드려고 생성한 문법은 아니다. 참조변수까지는 생성 가능하나
new로 객체를 만드는것은 불가능하다.
여러 객체를 상속하여 제어하기 쉽게 도와주고 , 강제화된 이름을 써서 규격화한다.
예를들어, 게임캐릭터 (ch1클래스 ,ch2클래스 ,ch3클래스 )를 만든다고하자.
게임캐릭터가 이동할때 ch1은 walk , ch2는 run, ch3는 fly라고 하면 제어하기 힘들다.
이동할때 메소드는 move로 통일하고 이것을 제어하는 부모클래스가 있으면 관리가 편하다.
즉, 상속용으로만 존재하는 class이다.
추상클래스 문법적 특징
abstract class Employee {
String name;
int salary;
public abstract void calcSalary();
}
클래스와 메소드앞에 abstract를 붙여준다. Employee를 상속받은 클래스는 오버라이딩 해줘야한다.
abstract class Manager extends Employee{
public void calcSalary() {
System.out.println("Manager 급여 = 기본급 + 팀 성과 수당");
}
}
일반클래스에는 추상메소드를 만들수는 없다.
추상메소드를 보유한 클래스는 반드시 추상클래스로 선언되어야만한다.
※
기본클래스 : new해서 객체를 만듬
추상클래스 : 객체를n ew 해서 만드는 목적이 없음. 추상클래스가 막아줌 (상속을 해주려고)
추상메소드 : 강제화된 이름을 정할 때 쓰는것 모두 다 calcSalary()라고 이름을 강제화 시킴 ! 이름 규격화
728x90
반응형
'Java' 카테고리의 다른 글
Java Polymorphism(다형성) (0) | 2023.02.06 |
---|---|
Java Interface(인터페이스) (0) | 2023.02.05 |
java Final (0) | 2023.01.29 |
java 오버라이드(Override) (0) | 2023.01.29 |
java 상속 (Inheritance) (0) | 2023.01.29 |