이번 내용은 어제보다 조금 더 어려운 내용일꺼라고 하셨는데 걱정된다..ㅠㅠ 그래도 열심히 잘 해봐야지!
학습목표
1.다향성의 의미와 장점 이해
2.참조변수의 타입변환 이해
3.업캐스팅,다운캐스팅 차이 이해
4.instanceof연산자 활용 이해
5.다형성 활용 이해
다형성 : 하나의 객체가 여러가지 형태를 가질 수 있는 성질
GirlFriend 클래스의 인스턴스를 생성 후 상위클래스인 Friend타입 참조변수를 할당함.
이 경우, 참조변수가 사용할 수 있는 멤버의 개수는 상위클래스의 멤버 수.
상위클래스 타입으로 하위클래스 참조는 가능, but 하위클래스타입으로 상위클래스 참조 불가능.
불가능 이유? 실제 객체인 상위클래스 멤버개수보다 참조변수가 사용할 수 있는 멤버개수가 더 많기 때문.
사용할 수 있는 기능을 줄이는건 가능, 늘리는건 불가능.
오버로딩, 오버라이딩도 다형성의 예시.
참조변수 타입변환 : 사용할 수 있는 멤버 개수 조절.
타입변환 조건
instanceof
: 참조변수의 타입변환(캐스팅) 가능여부를 boolean타입으로 확인할수있는 자바 문법요소.참조변수 instanceof 타입
학습목표
1.추상화의 개념과 목적 이해
2.abstract제어자가 내포하고있는 의미 이해
3.추상 클래스 개념, 문법 이해
4.final키워드 이해
5.인터페이스 핵심내용,활용법 이해
6.추상클래스와 인터페이스 차이 구분
추상클래스 생성 -> 상속받는 클래스 안에 추상메서드를 오버라이딩하여 각각 객체에게 맞는 구현부 완성.
이와같이 추상 클래스를 사용하여 오버라이딩을 통해 각자의 상황에 맞는 메서드 구현 가능.
상속계층도의 위로갈수록 추상화가 높고, 아래로갈수록 구체화됨.
상속계층도의 위로갈수록 공통적 속성,기능 정의.
인터페이스 : 서로 다른 두 시스템, 장치 소프트웨어 등 을 이어주는 접속장치.
추상클래스에 비해 더 높은 추상성을 띔.
인터페이스는 기본적으로 추상메서드와 상수만을 멤버로 둠. (추상메서드 집합)
인터페이스 기본 구조
class 클래스명 implements 인터페이스명 {
... // 인터페이스에 정의된 모든 추상메서드 구현
}
implements : 구현하다는 의미를 가진 키워드.
추상클래스와 같이 인터페이스도 메서드바디를 따로 정의하는 클래스를 작성해야함.
특정 인터페이스를 구현한 클래스는 인터페이스에 정의된 추상 메서드를 구현해야함.
class ExampleClass implements ExampleInterface1, ExampleInterface2, ExampleInterface3{
...
}
인터페이스 다중구현 가능 이유?
클래스는 상위클래스와 같은 이름의 필드,메서드 존재시 충돌발생, 다중상속 불가.
But, 인터페이스는 애초에 미완성이기에 충돌발생여부없음.
특정 클래스는 상속받음과 동시에 인터페이스 구현 가능