2019. 3. 8. 19:23ㆍJAVA
---------------------------필드의 다형성----------------------------
public class TireApp4 {
public static void main(String[] args){
Tire t1 = new KumhoSnowTire();
SnowTire t2 = (SnowTire)t1;
t1.go();
// t1.chain();
// t1.push();
((SnowTire)t1).chain();
t2.go();
t2.chain();
((KumhoSnowTire)t2).push(); // 강제 형변환
}
}
위에처럼 (())에 담아서 할경우 상속된 메소드뿐만 아니라 형변환한 클래스의 메소드를 사용할 수 있다.
----------------------------instanceof----------------------------------------
지금 바라보는 객체에 그 포함이 된건지 비교하는것
강제 형변환과 같이 사용된다.
객체 instanceof 클래스
Tire t = new SnowTire();
t instanceof Tire <---- t가 바라보는객체가 Tire종류인가요?
//Tire객체가 포함되어 있다. Tire로 강제형변환 가능
t instanceof SnowTire <--- t가 바라보는 객체가 SnowTire류 인가요?
//SnowTire객체가 포함되어 있다. SnowTire로 강제형변환 가능
t instanceof KumbosonwTire <--- t가 바라보는 객체가 KumhoSnowTIre류 인가요?
//KumhoSnowTire객체가 없다. KumhoSnowTire로 강제형변환 불가능.
*/
Tire t = new SnowTire();
System.out.println("t1은 Tire류 인가요? "+ (t instanceof Tire));
System.out.println("t1은 SnowTire 류인사요? "+(t instanceof SnowTire));
System.out.println("t1은 KumhoSnowTire류 인가요?" +(t instanceof KumhoSnowTire));
=======================================================================
결과
---------- 실행 ----------
t1은 Tire류 인가요? true
t1은 SnowTire 류인사요? true
t1은 KumhoSnowTire류 인가요?false
출력 완료 (0초 경과) - 정상 종료
---------------------상속, 의존, 포함, 구현관계, 집합관계-----------------------
의존관계 -- 예시) 자동차 --> 바퀴
(의존)
포함관계 -- student와 score 클래스를 만들어 score를 student 안에 넣으면 포함관계
public class Student{
private int no;
private String name;
private Score score;
'JAVA' 카테고리의 다른 글
final, final 클래스, final 메소드, 인터페이스 (0) | 2019.03.11 |
---|---|
super(), super, 추상클래스, 추상메소드, 템플릿 클래스, 템플릿 패턴 (0) | 2019.03.08 |
상속, extends, 오버라이딩, 재정의, 타입형변환 (0) | 2019.03.08 |
static, final, 패키지, (0) | 2019.03.08 |
인스턴스, this, 접근제한자, 겟터 셋터 (0) | 2019.03.08 |