티스토리 뷰
생성자는 void를 쓰지않고 클래스 이름 그대로만 쓴다 ex)
class dog{
public dog == 생성자로서 정의된다.
public void dog == 일반 메소드로써 정의된다.
}
이 상태로 aniaml을 상속 시키게되면 빨간줄이 뜨게된다.
1. 정의되지 않은 추상클레스가 존재하므로 재정의 하라고 메세지가 뜨게된다.
2. cat 클래스 또한 추상화된걸 정의하지않고 추상화도 사용하라고 메세지가 뜨게된다.
즉 abstract를 사용하는것은 상속받았을 때 무조건 재정의 해야하는 메소드를 알려줄 때 사용할 수 있다.
extends == 상속받은걸 그냥 쓰는거
implements == 가져와서 새롭게 쓰는거 --> 다중상속을 위해 사용한다.
JAVA는 다중상속을 지원하지 않는다. implements 를 통해 다중상속과 비슷한 형태를 구현할 수 있다.
interface == 추상메소드만을 모은 클래스 이 클래스를 implements를 통해 상속할 수 있다.
InnerClass == 현재 클래스 안에서만 사용할 클래스를 새로 정의할 때 쓴다 ( 현재클래스의 모든 멤버에 접근가능 하지만 클래스가 사라지면서 같이 사라지기 때문에 권장하지않음 )
무명클래스(anonymous class) : 클래스 몸체는 정의되지만 이름이 없는 클래스이다.
1. 비디오 플레이어는 play 와 stop 이라는 조작을 할 수 있다. 따라서 인터페이스 Controllerable 을 아래와 같이 정의 할 수 있다. Controllerable 인터페이스를 구현하는 VideoPlayer 클래스를 Test 클래스의 MoviePlayer() 메소드 안에 무명 클래스로 작성하고 테스트하시오.
2.
'Study > JAVA' 카테고리의 다른 글
객체지향 프로그래밍(JAVA) 8주차 (0) | 2019.11.04 |
---|---|
객체지향 프로그래밍 7주차 (JAVA) (0) | 2019.10.14 |
객체지향 프로그래밍 5주차 (JAVA) (0) | 2019.09.30 |
객체지향 프로그래밍 4주차(JAVA) (0) | 2019.09.23 |
객체지향 프로그래밍 3주차(JAVA) (0) | 2019.09.16 |