추상클래스
27 Aug 2021 -
Less than 1 minute read
-
추상클래스 (Abstract Class)
-
추상메서드(abstract method, 구현 코드 없이 메서드의 선언만 있는 것)를 포함한 클래스
-
abstract 예약어 사용
-
추상클래스는 인스턴스화 불가능 (new할 수 없음)
-
-
추상클래스의 구현
-
구현코드가 없는 메서드 > abstract로 선언
-
abstract로 선언된 메서드를 가진 클래스 > abstract로 선언
-
abstract로 선언된 추상 클래스는 인스턴스화 할 수 없음
-
추상클래스 내 메서드는 하위클래스가 상속하여 구현 (필요에 따라 재정의)
-
-
ex)
-
Animals.java
public abstract class Animals { public abstract void duck(); public abstract void frog(); void cat() { System.out.println("야옹"); } void dog() { System.out.println("멍멍"); } }
-
AnimalName.java
public class AnimalName extends Animals { @Override public void duck() { System.out.println("오리"); } @Override public void frog() { System.out.println("개구리"); } }
-
Cry.java
public abstract class Cry extends Animals { //추상메서드를 모두 구현하지 않으면 abstract 클래스가 되어야 함 @Override public void frog() { System.out.println("개굴개굴"); } }
-
AnimalCry.java
public class AnimalCry extends Cry { @Override public void duck() { System.out.println("꽥꽥"); } }
-
Main.java
public class Main { public static void main(String[] args) { AnimalName animalName = new AnimalName(); animalName.cat(); animalName.duck(); AnimalCry animalCry = new AnimalCry(); animalCry.dog(); animalCry.frog(); } }
-