[Eclipse] 객체지향개념(상속, 오버라이딩, super)
2021. 6. 22. 15:09ㆍJAVA
* 상속(inheritance)
- 이미 개발된 클래스를 재사용하여 새로운 클래스를 만들기에 중복되는 코드를 줄임
- 부모 클래스 한번의 수정으로 모든 자식 클래스까지 수정되는 효과가 있어 유지보수에 편리
- 자식클래스는 부모클래스의 변수 메소드를 상속 받아 사용가능
- 여러 개의 부모 클래스를 상속할 수 없음
* 오버라이딩(overriding)
: 상속받은 메소드의 내용을 상속받는 클래스에 맞게 변경하는 것
-오버라이딩 방법
1. 선언부가 같아야 한다.(이름, 매개변수, 리턴타입)
2. 메소드가 재정의될 경우 부모 객체 메소드가 숨겨지며, 자식 객체에서 메소드를 호출하면 재정의된 자식 메소드가 호출된다.
Class Point{
int x,y;
String getLocation(){
return x+y;
}
Class Point3D extends Point{
int z;
String getLocation(){
return x+y+z; //오버라이딩
}
* 오버로딩 vs 오버라이딩
- 오버로딩: 메소드 이름이 같을때, 매개변수 타입이나 개수를 달리해서 새로 정의하는 것
- 오버라이딩: 상속받은 메소드의 내용을 재정의하는것
*super
: this와 같음. 조상의 멤버와 자신의 멤버를 구별하는 데 사용.
-super()
- 부모 클래스의 생성자를 호출하는 함수
- 상속시 자식의 생성자의 첫 문장에서 부모의 생성자를 호출해야 한다.
(컴파일러가 자동적으로 super(); 를 첫 줄에 삽입)
'JAVA' 카테고리의 다른 글
[Eclipse] 추상클래스, 인터페이스 (0) | 2021.06.23 |
---|---|
[Eclipse] 다형성 (0) | 2021.06.22 |
[Eclipse] 객체지향개념(static, final, 접근제어자, getter, setter) (2) | 2021.06.22 |
[Eclipse] 메소드 오버로딩 (0) | 2021.06.21 |
[Eclipse] 메소드, 생성자 (0) | 2021.06.21 |