Day010 Overriding + Overloading + 생성자

개발 Programming/JAVA|2009. 6. 19. 15:45

Overriding

- 재정의, 인자는 똑같아야 하고 ,리턴 유형은 호환 가능해야 한다.
 똑같은 유형이거나 하위 ㅡㅋㄹ래스 유형을 리턴하도록 선언해야 한다.
메소드를 더 접근하기 어렵게 만들면 안됌


+ Overloading

- 중복, 리턴 유형이 달라도 된다. 인자목록만 다르다면..

public void eat()
public void eat(String s)
public String eat(String s , String d)


생성자

- 생성자에는 객체를 생성할 때 실행되는 코드가 들어있음. 즉 유형에 대해 new 키워드를 사용했을 때 실행

생성자는 상속 안됌, 생성자가 두개 이상이면 각 생성자의 인자 목록은 반드시 서로 달라야 함. 프로그래머가 직접 기본값을 지정 하지 않아도 인스턴스변수에 기본값이 지정 되는 점이 좋음~


상속 계층내에서 생성자의 관계

- 새로운 객체를 만들 때 객체의 상속 트리에 들어있는 모든 생성자가 실행되어야 한다.

생성자 연쇄 (constructior chaining)
- 개발자가 직접 상위 클래스의 생성자를 호출안하면 컴파일러가 알아서 처리해줌 단, 인자가 없는 형태의 생성자를 사용 super()
모든 생성자에는 super()혹은 this()를 호출하는 선언문이 들어갈 수 있지만, 둘다 사용할 수 없음. 이 둘은 항상 생성자의 첫번째 선언문으로만 사용할 수 있음.

class Animal(){
public Animal(){
}
class Cat extends Animal{
public Cat(){
super();
}
}

this 와 super

- 다른 오버로드된 생성자를 호출할 수도 있고 , 상위 클래스의 생성자를 호출할 수도 있음

모든 생성자는 한개만 선언 맨 위에 선언해야 한다.




 



댓글()