반응형
[광고 누르면 오늘의 행운 상승!!]
class 설계 시에 특정 class를 상속받아 그 class의 변수와 메소드를 사용할 수 있다.
특징
1. Generalization 추출된 class의 공통적인 특성을 모아 super class로 정의
2. Specialization 비슷한 속성과 기능을 가지고 있는 다른 class를 상속 받아 새로운
class 정의 코드양을 줄일 수 있다 자바에서는 둘 다 상속으로 부른다!
관계
상속 관계에서 부모-자식 관게는 is a relationship
부모생성자
Super(name, age)를 사용하면 부모의 생성자를 불러올 수 있다.
super()는 명시적으로 코딩하지 않는다. 알아서 컴파일러가 넣어준다 extends object도 마찬가지.
super가 오면 this가 못오고 this가 오면 super도 못온다.
★생성자 오버로딩을 할 때 상속관계가 되면 자식의 디폴트 생성자가 super()를 자동으로
호출하기 때문에 부모의 디폴트 생성자가 없으면 에러가 발생한다.★
구현코드
Person p = student("홍길동" ,20,200202);
p.setName("강호동");
p.setStuid(20200);
p.PrintAll();
instanceof
Teacher t = (Teacher)pe; //런타임 에러 발생 //ClassCastException
System.out.println(p instanceof Teacher); //false
System.out.println(p instanceof Student); //true
System.out.println(p instanceof Object); //true
if(p instanceof Student) {
Student s = (Student)p;
s.setStuid(202077);
s.PrintAll();
}
//정상실행
박싱/언박싱
Object o = 123; //new Integer(123); //오토박싱 - 언박싱
//박싱이 되서 들어간다.
System.out.print((int)o);//언박싱
반응형
'3. 자바 > 1. 자바의 특징' 카테고리의 다른 글
자바의 특징 (0) | 2020.03.02 |
---|---|
변수, 구조체, 클래스 (0) | 2020.03.02 |
메모리 호출 순서 (0) | 2020.03.02 |
캡슐화(Encapsulation) (0) | 2020.03.02 |
다형성(polymorphism ) (0) | 2020.03.02 |