추상 클래스란?
객체를 생성할 수 있는 클래스들의 공통적인 필드나 메서드를 추출해서 선언한 클래스
실제 클래스의 부모 역할을 한다
public abstract class 클래스명{
// 필드
// 생성자
// 메소드
}
클래스 선언에 abstract 키워드를 붙여준다
추상 클래스는 new 연산자를 이용해서 객체를 직접 만들지는 못하고 상속을 통해 자식 클래스만 만들 수 있음
abstract void(); {}이 없는 메서드를 가진다(선언 부만 있고 구현 부가 없는 메서드)
추상메서드와 재정의
// 추상 클래스
abstract class pet{
abstract public void walk();
abstract public void eat();
public int health;
public void run(){
System.out.println("run run")
}
}
class Dog eatend Pet{
// 상속 받은 부모(추상) 메서드 직접 구현
public void walk(){
System.out.println("Dog walk")
}
public void eat(){
System.out.println("Dog eat")
}
}
public class main {
public static void main(String[] args) {
Dog d = new Dog();
d.eat(); // 부모(추상) 클래스로 부터 상속받은 추상 메소드를 직접 구현한 메소드를 실행
d.walk();
d.run(); // 부모(추상) 클래스의 인스턴스 메소드 실행
}
}
'JAVA' 카테고리의 다른 글
[Java] Collections framework (0) | 2024.05.04 |
---|---|
[Java] 인터페이스 interface (0) | 2024.05.04 |
[Java] 싱글톤 패턴 (0) | 2024.05.04 |
[Java] String 문자열 타입 (0) | 2024.05.04 |
[Java] 데이터 타입 분류 (0) | 2024.05.04 |