728x90
JAVA 상속과 다형성
다형성 : 다양한 형태가 존재한다. 단순하게 만들어 준다는 뜻
활용 : 다양한 참조 변수를 가지는 객체의 배열, 여러 종류의 매개변수 받기
업 캐스팅 : 허용 O, 자동으로 형 변환시켜준다
Person P = new UnivStudent();
Person P = (Person)(new UnivStudent()); // 자동 실행
다운 캐스팅 : 허용 X, 업 캐스팅 후 다운 캐스팅만 허용한다
즉, 원래 내 타입으로 돌아오는 것만 허용한다
<주의>
-instanceof 연산자로 타입 확인하기
-object 클래스는 모든 클래스의 super 클래스로, 모든 객체를 가리킬 수 있다.
-자식 객체의 상속받지 않은 멤버에 접근하기 위해서는 반드시 다운 캐스팅되어야 한다.
<Person 상위 클래스>
public class Person{
protected int age;
protected String name;
public Person (String name, int age){
this.age = age;
this.name = name;
}
void WhatYourName(){
System.out.println(age + "세");
}
public boolean equals(Object obj){ // super 클래스 Object 자료형의 매개변수
boolean result = false;
if(obj != null && obj instanceof Person){ // obj가 Person 자료형이면
Person P = (Person) obj; // 원래 자신의 자료형으로 다운캐스팅
if((age == p.age) && name.equals(p.name)) // 이름과 나이가 같으면
result = true;
}
return result;
}
}
<UnivStudent 하위 클래스>
public class UnivStudent extends Person{
protected String major;
public UnivStudent(String name, int age, String major){
super(name,age);
this.major = major;
}
void WhoAreYou(){
WhatYourName();
HowOldAreYou();
System.out.println(major + "전공");
}
}
728x90
'JAVA Programming > JAVA 개념 정리' 카테고리의 다른 글
JAVA Exception 예외 처리 (0) | 2021.12.03 |
---|---|
JAVA interface 인터페이스 abstract class 추상 클래스 (0) | 2021.12.02 |
JAVA Polymorphism Upcasting Downcasting 자바 다형성 업 캐스팅 다운 캐스팅 (1) | 2021.11.12 |
JAVA Method Overriding 자바 메서드 오버 라이딩 (2) | 2021.11.11 |
JAVA 클래스 상속 (1) | 2021.11.10 |