티스토리 뷰

생성자는 void를 쓰지않고 클래스 이름 그대로만 쓴다 ex)

 

class dog{

 

public dog == 생성자로서 정의된다.

 

public void dog == 일반 메소드로써 정의된다. 

}

상속관계 일 때만 OVERRIDE가 나타날 수 있다. (상속관계아니면 애초에 재정의 자체가 아니다)

 

abstract - 추상화 메소드가 한개라도 있으면 클레스에도 abstract를 붙여줘야한다.

 

이 상태로 aniaml을 상속 시키게되면 빨간줄이 뜨게된다.

1. 정의되지 않은 추상클레스가 존재하므로 재정의 하라고 메세지가 뜨게된다.

2. cat 클래스 또한 추상화된걸 정의하지않고 추상화도 사용하라고 메세지가 뜨게된다.

 

즉 abstract를 사용하는것은 상속받았을 때 무조건 재정의 해야하는 메소드를 알려줄 때 사용할 수 있다.

 

 

extends == 상속받은걸 그냥 쓰는거

implements == 가져와서 새롭게 쓰는거 --> 다중상속을 위해 사용한다.

 

JAVA는 다중상속을 지원하지 않는다. implements 를 통해 다중상속과 비슷한 형태를 구현할 수 있다.

interface == 추상메소드만을 모은 클래스 이 클래스를 implements를 통해 상속할 수 있다.

 

 

InnerClass == 현재 클래스 안에서만 사용할 클래스를 새로 정의할 때 쓴다 ( 현재클래스의 모든 멤버에 접근가능 하지만 클래스가 사라지면서 같이 사라지기 때문에 권장하지않음 )

 

무명클래스(anonymous class) : 클래스 몸체는 정의되지만 이름이 없는 클래스이다.

 

무명클래스로 여기서 ac만이 TV turnOn() , TV turnOff()를 사용ㅎ는중 , ac1으로 하면 다시 만들어줘야됨

 

 

 

 

 

 

1.    비디오 플레이어는 play stop 이라는 조작을 할 수 있다. 따라서 인터페이스 Controllerable 을 아래와 같이 정의 할 수 있다. Controllerable 인터페이스를 구현하는 VideoPlayer 클래스를 Test 클래스의 MoviePlayer() 메소드 안에 무명 클래스로 작성하고 테스트하시오.

 

 

2.

댓글
최근에 올라온 글
최근에 달린 댓글
250x250