[JAVA]9월 18일 상속, 부모클래스, 자식클래스, Singleton패턴
* 상속
코드를 재사용하기위한 중요한 기법입니다.(공통점을 찾아서 묶어야됨.)
ex)부모 클래스 (Car) 자식클래스 (superCar) 상속 하려면
public class superCar extends Car; << Car클래스 상속 받음.
이제 슈퍼카 클래스에서 Car 클래스에 있는 상태,메소드 등을 따로 등록 하지 않고 사용할수있다.
메소드 재정의 : 부모클래스가 정의한 메소드와 똑같은 원형을 가진 메소드를 자식 클래스에서 정의하는 것.
메소드를 재정의하려면 반환유형,이름 매개변수의 개수와 테이터 타입이 같아야함.(다르면 오버라이드가 아님)
상속 ex)
class Parent{
private int data = 100;
public Parent(String name){
System.out.println("부모 생성자가 호출됨" + name); // 자식클래스 객체 만들기전에 부모클래스 객체 만들고 이어붙인다는게증명.
}
public void print(){
System.out.println(data);
System.out.println("부모클래스임");
}
}
class Child extends Parent{
int data = 200;
public Child(){
//자식클래스 생성자가 호출되자마자 부모클래스의 기본생성자가 묵시적으로 호출됨.
// super(); // << 부모클래스 생성자를 명시적으로 호출하는거.
//부모클래스에 기본생성자가 없으면 알아서 불러줘야됨.
super("불러줘");
System.out.println("자식 생성자가 호출됨");
}
public void print(){
super.print();
int data = 300;
System.out.println(data);
System.out.println(this.data);
// System.out.println(super.data);
}
}
*접근지정자
protected : 동일 패키지에 속하는 클래스와 하위 클래스 관계의 클래스에 의해 접근이 가능하다.
그래서 보통 부모 클래스가 될 클래스의 멤버는 protected 로 한다.
***Singleton 패턴
디자인패턴 중에 하나로 특정 클래스의 객체가 한개만 존재하도록 제어하는방법.
//클래스에 Singleton 패턴 적용하는방법.
//1.자기 자신에 참조변수를 static으로 등록.
//2.생성자를 private으로 감춘다.
//3.1번 변수에 대한 getter 를 만들되 해당변수가 null이면 새로운 객체를 할당하고
// instance의값을 반환.
private static Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if(instance == null)
instance = new Singleton();
return instance;
}