반응형
⚡️추상메소드
일반적으로 부모클래스에서 상속을 받으면 이미 존재하는 메소드를 그대로 사용하거나 오버라이딩해서 자식 클래스에 알맞게 사용한다.
추상메소드 같은 경우, 구현부 없이 선언하여 상속받은 자식클래스에서 메소드의 오버라이드를 강제한다.
아래와 같이 서브 클래스에서 추상 메소드를 재정의하지 않을 경우 에러 메세지가 뜨는 모습을 볼 수 있다.
⚡️추상클래스
추상클래스는 하나 이상의 추상 메소드를 지니고 있는 클래스를 지칭한다.
추상클래스와 추상메소드를 생성하는 방법은 아래와 같다.
abstract class 클래스명{
abstract void 메소드명(); // {} 구현부 생략
}
추상메소드가 클래스에 포함되어 있을 경우 abstract 키워드는 클래스 생성시 꼭 필요하며
추상클래스라 하더라도 일반 클래스와 같이 생성자와 필드 메소드를 포함할 수 있다.
그리고 추상클래스는 인스턴스를 생성할 수 없고 ,
상속 받은 자식 클래스가 추상 메소드를 모두 오버라이딩 한 후에 인스턴스를 생성할 수 있다.
동물을 예로들어 추상 클래스와 추상 메소드를 통해 서브 클래스를 아래와 같이 구현할 수 있다.
abstract class Animal{
abstract void eat();
abstract void sound();
}
class Dog extends Animal{
@Override
public void eat() { System.out.println("주인이 주는대로 먹는다"); }
@Override
public void sound() { System.out.println("멍"); }
}
class Lion extends Animal{
@Override
public void eat() { System.out.println("육식"); }
@Override
public void sound() { System.out.println("으르렁"); }
}
반응형
'Java, JSP' 카테고리의 다른 글
[Java/자바] 내부클래스(Inner Class) - 인스턴스 클래스, 정적 클래스, 지역 클래스, 익명 클래스 (2) | 2022.01.04 |
---|---|
[Java/자바] interface 인터페이스 사용법 (0) | 2022.01.01 |
[Java/자바] final 의미와 사용법 (0) | 2021.12.30 |
[Java/자바] 다형성과 오버라이드, 캐스팅 (0) | 2021.12.29 |
[Java/자바] 입력 BufferedReader와 Scanner의 차이 (2) | 2021.12.26 |
댓글