JAVA/java 공부

[JAVA] class extend 클래스 상속

congs 2023. 3. 25. 18:59

class 상속

: 기존의 클래스를 재사용,

   새로운 클래스에서 기존 클래스의 속성과 메서드를 확장 사용 가능

 

⭐ 상속시 주의사항

1. 생성자 = protect 

상속클래스에서만 public처럼 사용가능 ( 외부 클래스에서 사용 불가 )

2. 부모class에 접근하는 예약어 = super 

: 하위class -> 상위class에 접근시 사용

3. 상속은 단일 상속이 원칙! (다중 상속X) 

4. 형태 : 부모class명 extends 자식class명

 

 

모든 클래스의 최고 조상은 Object class

  • 모든 클래스는 Object가 제공하는 클래스를 사용할 수 있고, 오버라이딩 할 수 있음
//부모 클래스
class A {
	private int a, b, c; //자신만 사용 가능
	protected int num; // 상속가능!!
	
	//프린트메서드
	public void print() {
		System.out.println("a: " + a + " b: " + b + " c: " + c);
		System.out.println("num: " + num);
	}
	
	//getter/setter
	public int getA() {
		return a;
	}
	public void setA(int a) {
		this.a = a;
	}
	public int getB() {
		return b;
	}
	public void setB(int b) {
		this.b = b;
	}
	public int getC() {
		return c;
	}
	public void setC(int c) {
		this.c = c;
	}
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
}

//자식 클래스
class B extends A { 
// a, b, c = getter/setter로 접근이 가능 + d, e, f 직접 접근, 사용 가능
	
	private int d, e, f;
	
	//자동으로 print를 하는 방법 : 마우스 우키 - sourse - override 
	//단, print() 라는 같은 이름의 메소드가 없어야함!
	@Override
	public void print() {
		super.print();
	}

	public void print1() {
		super.print(); //super : 부모클래스의 값을 가져올때 사용
		System.out.println("d: " + d + " e: " + e + " f: " + f);
	}

	public int getD() {
		return d;
	}
	public void setD(int d) {
		this.d = d;
	}
	public int getE() {
		return e;
	}
	public void setE(int e) {
		this.e = e;
	}
	public int getF() {
		return f;
	}
	public void setF(int f) {
		this.f = f;
	}

}