상속 예제 풀이
상속
인터페이스
인터페이스란, 역할을 부여하는 것이다.
인터페이스는 추상 메소드로 구성된다.
추상 메소드란, 중괄호 내부가 없는 껍데기 메소드이다.
인터페이스 구현 시, implements 키워드를 사용한다.
해당 인터페이스(역할)를 구현하는(부여받은) 클래스를 구현체 클래스라 한다.
구현체 클래스는 모든 추상 메소드를 오버라이딩(재정의)해야 한다.
프로그램 설계의 명확성
서로 다른 객체에게 관계성 부여(업캐스팅 가능)
한 객체를 다양한 인터페이스로 해석 가능(다형성)
EX 1
EX 2
Timer 예제 1
- scheduleAtFixedRate(할일, 시작시간, 주기) => 시간 단위 1000ms
- TimerTask는 추상 클래스이며 추상 클래스는 객체 생성 할 수 없으므로 Task 클래스를 만들어서 TimerTask를 상속 받으면 됨
Timer 예제 2
GUI 버튼 클릭 시 배경 색상 바꾸기
내부클래스
해시코드와 this
- 해시코드는 주소값이고 같은 주소지만 16 또는 10 진수로 표기함에 따라 아래와 같음
- 해시코드는 객체마다 다름 객체의 유일한 값
782830e => 16진수로 표기된 주소
125993742 => 10진수로 표기된 주소
지역 내부 클래스 (로컬 이너 클래스)
스테틱내부클래스
익명클래스
- 이름이 없는 클래스이면서 1회용 클래스
- 인터페이스는 객체를 생성하지 못하므로 new Runnable()을 사용할 수 없지만 클래스 { }를 넣으면 구현 가능함
- 밖에 별개로 클래스를 만들지 않고 인터페이스 구현 가능
- gui 배경 색상 변경도 익명클래스로 간단하게 가능
예외
- try { 예외 발생할 수 있는 코드
} catch { 예외 발생 시 출력할 코드
}
상속 예제 문제 풀이 계속
EX 3
EX 4
- 오버라이딩(overriding)
부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의하여 사용함