추상클래스와 인터페이스

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