월루를 꿈꾸는 대학생

7-1 객체지향 본문

Programing/Java

7-1 객체지향

하즈시 2021. 4. 4. 09:43
728x90

1. 상속 

 

1.1 상속의 정의 장점

- 기존의 클래스를 재사용하여 새로운 클래스 작성하는 것 

- 재사용성 up .. 생산성 up 

- extends 키워드 사용 

 

class Child extends Parent {
	//
}

 

http://www.tcpschool.com/java/java_inheritance_concept

 

자식 클래스에서는 따로 선언하지 않아도 부모 클래스 멤버 사용가능 

자손 클래스는 부모 클래스의 모든 멤버를 상속 받기에 항상 부모 클래스보다 같거나 많은 멤버를 가짐 

 

생성자와 초기화 블럭은 상속되지 않는다 ! 다만 멤버만 상속

자손 클래스의 멤버 개수는 조상클래스보다 항상 같거나 많다 

 

자손 클래스의 인스턴스를 생성하면 부모 클래스의 멤버와 자손 클래스의 멤버가 합쳐진 하나의 인스턴스로 생성 즉 자손 클래스 인스턴스화시 부모 클래스도 포함된 것으로 만들어짐

 

 

1.2 클래스 간의 관계 - 포함 관계 

 

- 상속 이외에 클래스를 재사용하는 방법  : 포함

- 한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언 

- 다른 클래스를 멤버변수로 선언하여 포함 시키는 것 

 

https://blog.daum.net/gunsu0j/52

 

 

1.3 클래스 간의 관계 결정하기 

 

원은 점이다! Circle is a Point -> 상속

원은 점을 가지고 있다 ! Circle has a Point -> 포함 

 

 

 

 

1.4 단일 상속 

- 하나 이상의 클래스로부터 상속을 받을 수 없음 

- 즉 자바에서는 단일 상속만을 허용 

 

1.5 Object 클래스 - 모든 클래스의 조상 

- Object 클래스는 모든 클래스의 상속계층 최상위에 있음 

 

https://dipa92.tistory.com/entry/Object-equals

- 최상단의 object 클래스의 멤버들을 상속받기 때문에 Object에 정의된 멤버들을 사용할 수 있었다 

ex _ toString() , equals(Object o) 등

 

 

2. 오버라이딩

 

2.1 오버라이딩

- 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것 

- 즉 위 조상 클래스의 멤버들을 자손 클래스에서 변경해서 사용하는 것!! 

 

 

2.2 오버라이딩 조건 

 

- 이름이 같아야한다

- 매개변수가 앝아야한다

- 반환 타입이 같아야한다 ! 

 

 

조상 클래스의 메서드를 자손 클래스에서 오버라이딩 하는 경우

- 접근 제어자를 조상 클래스 메서드보다 좁은 범위로 변경 x 

- 예외는 조상 클래스의 메서드보다 많이 선언 x 

-  인스턴스 메서드를 static 메서드 혹은 그 반대로 변경 x 

 

 

2.3 오버로딩 vs 오버라이딩 

 

오버로딩 : 기존에 없는 새로운 메서드를 정의 하는 것 new ! !

오버라이딩 : 상속받은 메서드의 내용을 변경하는 것 change !! 

 

 

2.4 super

- 자손 클래스에서 부모 클래스로부터 상속받은 멤버 참조하는 참조변수 

 

2.5 super() 조상 클래스의 생성자

- super() 생성자 ... 조상 클래스의 생성자를 호출 

 

Object 클래스 제외한 모든 클래스의 생성자 첫 줄엔 생성자.thsi() 혹은 super()를 호출해야함 그렇지 않으면 컴파일러가 자동적으로 super(); 를 생성자의 첫줄에 삽입하니까 

 

클래스 : 어떤 클래스의 인스턴스를 생성할 것인가

생성자 : 선택한 클래스의 어떤 생성자를 이용해서 인스턴스를 생성할 것인가 

 

 

 

728x90

'Programing > Java' 카테고리의 다른 글

ch7-2 객체  (0) 2021.04.11
7_1 알고리즘  (0) 2021.04.04
6-2 알고리즘  (0) 2021.03.28
6-2 객체지향  (0) 2021.03.28
ch6 알고리즘  (0) 2021.03.21