추상클래스
1. 해당 클래스가 추상메서드를 1개라도 가지고 있으면, 그 클래스는 추상클래스(abstract class Animal)가 된다.
추상클래스는 불완전한 클래스이기 때문에
Animal ani = new Animal(); 객체생성불가!!!
public abstract class Animal {
public abstract void eat(); // 추상 메서드
public void move() { // 구현메서드
System.out.println("무리를 지어서 이동한다.");
}
}
2. 부모클래스가 추상메소드를 포함하고 있는 경우
그 추상메소드는 자식클래스에서 반드시 오버라이딩(Overring)되어야 한다.
public class Dog extends Animal { // eat() { ? }
public Dog() {
super();// new Animal();
}
@Override
public void eat() {
System.out.println("개처럼 먹다");
}
}
3. 만약에 자식클래스에서 오버라이딩 하지 않는 경우
자식클래스는 추상메서드를 상속받으므로 (추상메서드가 1개라도 존재하면 추상클래스가 되므로) 자식클래스 역시 추 상클래스가 된다.
Dog dog = new Dog(); 자식클래스는 객체 생성불가!!
결론 : 부모클래스가 추상메소드를 가지고 있는 경우 그 추상메소드는 자식클래스에서 반드시 오버라이딩(Overring)되 어야 한다.
4. 추상 클래스의 역할
추상클래스는 서로 기능(ex.무리를 지어서 이동한다)이 비슷한 클래스 (Cat, Dog)를 묶을 때 사용된다.
'자바 > Java TPC(생각하고, 표현하고, 코딩하고)' 카테고리의 다른 글
추상클래스 vs 인터페이스 (0) | 2022.10.27 |
---|---|
인터페이스(100% 다형성 보장) & final, static (0) | 2022.10.27 |
다형성 (0) | 2022.10.26 |
부모와 자식간에는 형변환이 된다. & 나보다 부모가 먼저야 (0) | 2022.10.26 |
오버라이딩(Overrring) (0) | 2022.10.26 |