[JAVA] 추상클래스

[JAVA] 추상클래스

728x90

반응형

// 추상클래스 (불안전한 객체) public abstract class Animal{ // 추상메서드 (불안전한 메서드) public abstract void eat(){} // 일반 메서드 public void movie(){} }

추상 메서드는 객체를 만들 수 없습니다.

Animal ani = new Animal(); // 만들 수 없다

자신의 혼자서는 사용을 하지 못하며, 부모의 역할로만 사용할 수 있습니다.

public class Dog extends Animal{ public void eat(){} } public class Cat extends Animal{ public void eat(){} }

추상 클래스인 부모에 추상 메서드가 있다면, 구현 클래스에는 반드시 추상 메서드를 구현해야 합니다. (재정의)

재정의를 하지 않으면 하위 클래스도 추상클래스가 되기 때문에 객체를 생성할 수 없게 됩니다.

객체를 생성할 경우에 부모 클래스를 타입으로 하면, 메서드를 호출할 때 메서드 오버 라이딩되면서 자식 클래스의 메서드가 호출이 됩니다.

Animal r = new Dog(); r.eat();

추상클래스는 추상메서드를 구현하고, 구현 메서드도 따로 구현할 수 있습니다. (일부 다형성 보장)

하지만 인터페이스는 100% 추상메서드를 구현해야 합니다. (다형성 완전 보장)

728x90

반응형

from http://sloth.tistory.com/68 by ccl(A) rewrite - 2021-12-21 11:01:30