본문 바로가기
Java

java abstract

by 히예네 2023. 1. 30.
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