[Eclipse] 객체지향개념(상속, 오버라이딩, super)

2021. 6. 22. 15:09JAVA

* 상속(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(); 를 첫 줄에 삽입)