10일차....

고라파덕·2021년 3월 17일
0

JAVA

목록 보기
8/13
post-thumbnail

상속

기본클래스의 속성과 메소드를 물려받고 기존의 기능을 수정하거나 새로운 기능을 추가 확장한다.
형식

class 부모클래스 명{
	...
    	}
class 자식클래스 명 extends 부모클래스 명 {
					...
                    }

접근지정자
private 자신의 클래스에만 접근가능
protected 같은 패키지 또는 패키지가 달라도 자식클래스에서는 접근 가능하다.
default 같은 패키지에서 접근 가능하다.
public 어디서든 접근 가능하다.
범위
public > protected > default > private

부모 private멤버는 자식 클래서에서 접근할 수 없다.
부모의 protected멤버는 다른 패키지에서는 접근할 수 없지만 자식 클래스에서는 접근할 수있다.

상속에서의 생성자

자신 객체가 생성될때 부모 생성자가 먼저 호출되고 자식 생성자가 호출된다.
부모 생성자에 매개변수가 있다면 자식 생성자에서 부모 생성자를 호출해야한다.
부모생성자를 호출 할때는 super를 쓴다.

main에서 객체를 만들고 child c1 = new child(10); 값을 넣으면 super(a)가 부모클래스 a를 호출하고 값을 저장 한다.

오버라이딩

부모클래스의 메소드를 자식클래스에서 수정하고자 할때 오버라이딩 한다.
부모 클래스의 메소드,파라미터 갯수, 타입이 모두 같아야한다.
오버라이딩 할때 접근지정자가 부모의 접근 지정자보다 범위가 작으면 안된다.

예)

부모클래스의 public void draw(){}는 오버라이딩을 사용해서 자식클래서에서 수정하는 예시 이다.
자식클래스 Rect의 public void draw(String color){}는 오버로딩이니 헷갈리지 않게 조심해야한다.

클래스간의 형변환

클래스 간에는 형변환이 안되지만 상속관계에서는 형변환이 가능하다.
부모클래스는 자식클래스를 참조할 수 있지만 자식클래스에서 추가된 멤버는 참조할 수 없다.
단 오버 라이딩된 메소는 참조 가능하다.
자식클래스에서 부모 클래스를 참조할 수는 있지만 강제 형변환을 해야한다.

0개의 댓글