추상클래스와 인터페이스
2020. 11. 3. 20:24ㆍ자바기초
추상클래스 : 클래스 안에 추상메서드를 하나 이상 포함하거나 abstract로 정의된 경우
인터페이스 : 모든 메서드가 추상메서드인 경우
언뜻 보면 다중상속을 지원하지 않는 자바에서 다중상속을 쓰기위한 용도로 인터페이스를 쓴다고 생각할 수 있다.
추상클래스의 목적은 추상클래스를 상속받아서 기능을 이용하고, 확장
인터페이스는 메서드의 껍데기만 존재하며 그 메서드의 구현을 강제하기 위해
인터페이스에서 추상화된 메서드들은 해당 인터페이스를 구현한 객체가 반드시 구체화하여야 한다.
* 자바에서 다중상속을 지원하지 않는 이유.
여러 클래스에게서 상속을 받은 클래스에 같은 이름의 메서드가 존재한다면, 해당 클래스에서 상속받은 클래스들 중 어떤 클래스의 메서드를 사용할 지에 대한 모호성 때문
ex)
class MyVehicle extends Car, Plane {
@Override
public void goTo() {
super.drive(); // 어떤 클래스의 drive가 실행될까 ?
}
}
class Car {
void drive() {
System.out.println("car");
}
}
class Plane {
void drive() {
System.out.println("plane");
}
}
'자바기초' 카테고리의 다른 글
내일 할꺼 (0) | 2020.05.22 |
---|---|
CGI와 서블릿 그리고 톰캣 (0) | 2020.05.13 |
J2EE, JDK, JRE, J2SE (0) | 2020.05.13 |
데이터베이스 (0) | 2020.05.13 |
HTTP와 웹 서버 그리고 브라우저의 관계 (0) | 2020.05.13 |