충분히 쌓여가는
7.10 추상 클래스 본문
객체를 생성할 수 있는 클래스를 실체 클래스라고 한다면,
이 클래스들의 공통적인 필드나 메소드를 추출해서 선언한 클래스를 추상 클래스라고 한다
추상 클래스는 실체 클래스의 부모 역할을 한다
따라서 실체 클래스는 추상 클래스를 상속해서 공통적인 필드나 메소드를 물려받을 수 있다
추상 클래스는 실체 클래스의 공통되는 필드와 메소드를 추출해서 만들었기 때문에 new 연산자를 사용해서 객체를 직접 생성할 수 있다
추상 클래스는 새로운 실체 클래스를 만들기 위한 부모 클래스로만 사용된다
즉, 추상 클래스는 extends 뒤에만 올 수 있다
추상 클래스 선언
public abstract class 클래스명 {
//필드
//생성자
//메소드
}
추상 클래스도 필드, 메소드를 선언할 수 있다
자식 객체가 생성될 때 super()로 추상 클래스의 생성자가 호출되기 때문에 생성자도 반드시 있어야 한다
Phone 객체는 new 연산자로 직접 생성할 수 없지만, 자식 객체인 SmartPhone은 new 연산자로 객체 생성이 가능하다
package ch07.sec10.exam01;
public abstract class Phone {
String owner;
Phone(String owner) {
this.owner = owner;
}
void turnOn() {
System.out.println("전원을 켭니다");
}
void turnOff() {
System.out.println("전원을 끕니다");
}
}
package ch07.sec10.exam01;
public class SmartPhone extends Phone {
SmartPhone(String owner) {
super(owner);
}
void internetSearch() {
System.out.println("인터넷 검색");
}
}
'이것이 자바다 > 07 상속' 카테고리의 다른 글
7.11 봉인된 클래스 - sealed, permits (0) | 2024.04.02 |
---|---|
7.10 추상 클래스 - 추상 메소드와 재정의 (0) | 2024.04.02 |
7.9 객체 타입 확인 - instanceof (0) | 2024.04.02 |
7.8 다형성 - 매개변수 다형성 (0) | 2024.04.02 |
7.8 다형성 (0) | 2024.04.02 |