티스토리 뷰

1~2. 상속에 대한 기본개념과 사용법


3. 부모 생성자 호출

1. 자식이 생성 될 때, 부모 객체도 같이 생성된다.

2. 자식 생성자에 첫줄 에는 반드시 부모 객체를 생성하는 super(); 명령문이 있어야 한다. 없으면 자동으로 만들어진다.


4. 오버라이딩

1. 오버라이딩 조건 : 동일한 시그니처(리턴타입, 매개변수목록, 메소드이름) 을 가져야 한다.

2. 부모 메소드의 접근제한자 보다 더 강하게 접근제한을 걸 수 없다. 약하게는 가능(package -> public 가능)


5. final 클래스, 메소드

1. 최종적인 클래스므로 상속 불가능하며, 오버라이딩도 불가능 하다.


6. protected 접근제한자(상속 받았으면 사용할 수 있게해줌)

1. protected 가 걸려있는 필드,메소드이고, 이를 사용하는 객체가 상속을 받았다면, 다른 패키지에 있어도 사용가능하다.


7. 상속에서의 다형성

1. 부모 -> 자식으로 자동 타입변환 가능(자식이 더 크기 때문에)

2. ex) Animal animal = new Cat();

3. 자식 -> 부모로 형변환 되면, 당연히 부모 클래스의 필드,메소드만 접근가능하다.

      4. 예외로, 자식에서 부모 메소드를 오버라이딩 했으면, 형변환 시 오버라이딩된 메소드로 대체된다.


8. 다형성

-> 매개변수, 필드변수를 부모 클래스로 놔두고, 이를 대입 할 때 자식 클래스로 대입하여 자동형변환 되게한다.

-> 그러면, 똑같은 문장으로도 다른 자식변수가 자동형변환 되어 대입되기에 다른 결과들을 가져 올 수 있게 된다.


9. 인터페이스 vs 추상클래스

1. 인터페이스는 뼈대로, 특정 메소드를 반드시 가지고 구현 해야 될것을 의미한다. 그러므로, 다중 implements 가 가능하다.

2. 추상클래스는, 특정메소드와 특정 필드를 상속을 통하여 가지게 하지만, 클래스 이므로 단 하나만 상속가능하다.

3. 정리 : 추상클래스는 기능을 구체화,확장 하는데 중점을 두고, 인터페이스는 기능을 가지게 하는데 목적이 있다.


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함