2014-11-29 2 views

답변

2

다른 방법으로 보자면 추상적 인 메소드를 추상화하지 않아도 클래스를 인스턴스화 할 수 있었고, 인스턴스화하는 것이 허용 되었다면 그 메소드를 호출하면 컴파일러는 무엇이 될까요? - 실행할 실제 코드가 없습니다. 그래서 우리는 클래스를 추상적으로 선언합니다 - 우리는 이것을 '아직 사용할 준비가되지 않았습니다'라고 표시하고 나중에 실제로 사용할 수있는 추상 메소드가없는 '구체적인'서브 클래스를 만듭니다.

class Horse { // <== note not actually allowed... 
    public abstract int getNeighCount(); 
} 

Horse horse = new Horse(); 
horse.getNeighCount(); // <== what would happen here?? 
+0

당신의 설명은 정말로 감사합니다. –

0

이것은 필수 항목과 아무 관련이 없습니다. 최소한 하나의 추상 메소드가있는 클래스는 추상 클래스입니다.

1

구체적인 (추상이 아닌) 클래스에는 모든 메소드에 대한 구현이 있어야합니다. 따라서 구현되지 않은 (추상) 메소드는 인터페이스 또는 추상 클래스에만있을 수 있습니다.

0

기본적으로 인터페이스에서 모든 메소드는 추상입니다.

추상 메서드는 매우 구체적인 구현을 제공하기 위해 해당 추상 클래스의 하위 클래스로 재정의되며 실제로는 골격입니다.

관련 문제