반응형

[광고 누르면 오늘의 행운 상승!!]

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

+ Recent posts