• 클래스를 만들 때 인스턴스를 만들 수 없게 하고 싶다면 (즉, 그 클래스 유형의 객체를 만들 수 없게 하고 싶다면) abstract 키워드를 사용하면 된다.
  • 추상 클래스에는 추상 메소드와 추상 메소드가 아닌 메소드를 모두 집어넣을 수 있다.
  • 클래스에 추상 메소드가 하나라도 있으면 그 클래스는 추상 클래스로 지정해야 한다.
  • 추상 메소드는 본체가 없으며 선언 부분은 세미콜론으로 끝난다.
  • 상속 트리에서 처음으로 나오는 구상 클래스에서는 반드시 모든 추상 메소드를 구현해야 한다.
  • 자바에 들어있는 모든 클래스는 직접 또는 간접적으로 Object의 하위 클래스입니다.
  • ArrayList에서 꺼내는 모든 객체는 Object 유형입니다.(즉, Object 레퍼런스 변수로만 참조 할 수 있다,)
  • 레퍼런스 변수를 캐스트해서 객체의 원래 유형으로 돌려놓을 수 있다.
  • 어떤 객체에 있는 메소드를 호출하려면 실제 객체의 유형과는 관계없이 그 메소드가 레퍼런스 변수로 쓰인 클래스(또는 인터페이스)에 들어있는 메소드여야만 한다.
  • DDD와 관련된 문제 때문에 자바에서는 다중 상속을 허용하지 않는다. 클래스는 단 하나만 확장할 수 있다.(즉 직속 상위 클래스는 하나밖에 없다.)
  • 인터페이스는 100% 순수한 추상 클래스입니다. 인터페이스에서는 추상 메소드만 정의한다.
  • 인터페이스를 만들 때는 Class 대신 interface라는 키워드를 사용한다.
  • 인터페이스를 구현할 때는 implements라는 키워드를 쓰면 된다.
  • 클래스를 만들 때 인터페이스를 여러 개 구현할 수 있다.
  • 인터페이스의 모든 메소드는 자동으로 public 메소드, 그리고 abstract 메소드가 되기 때문에 인터페이스를 구현하는 클래스에서는 인터페이스에 들어있는 모든 메소드를 구현해야한다.
Posted by 서오석
,