본문 바로가기

JAVA/객체 코드

객체의 3대 특징 - 상속성


 ** 상속성 : 부모클래스에서 기능을 상속한다.
  variable  method
  추가로 기능을 확장하는 경우
   


 

사실상 부모 - 자식 - 메인 순으로 출력하나

겉으로 보기엔 자식 - 메인순과 헷깔릴 수 있다.

그 이유는 자식메소드에 숨어있는 super();가 자동생략이기 때문.

 

 

main

		Child c = new Child();
		
		//c.name = "일지매";//The field Parent.name is not visible 접근불가 ->protected
		
		c.Parent_method();//부모 - 자식 - 메인 순으로 출력
        답:		//Parent Parent(int number)
			//Child Child()
			//Parent Parent_method()
			//number = 2
        
		
		Child cls = new Child(329);
		
		cls.Parent_method();
        답:		//Parent Parent(int number)
			//Parent Parent_method()
			//number = 329

 

 


 

Parent

public class Parent {

	private int number;
	protected String name;
	//protected : 자식클래스에서는 접근을 허용하지만 외부에서는 접근차단.
	//그러나 private를 사실 setter getter로 설정하여 사용하면되서 protected를 사용하는경우가 대부분
	
	
	public Parent() {	//기본생성자
		System.out.println("Parent Parent()");
	}
	
	public Parent(int number) {
		this.number = number;//Child에서 넘어옴
		System.out.println("Parent Parent(int number)");
	}
	
	
	public void Parent_method() {
		System.out.println("Parent Parent_method()");
		System.out.println("number = "+number);
		System.out.println();

	}
}

 

 


 

 

Child

public class Child extends Parent {

	public Child() {
		//super : 부모클래스의 reference (참조=주소)
		//this	: 자기 자신의 참조
		super(2);
		System.out.println("Child Child()");
	}
	
	public Child(int num) {
		super(num);//부모클래스 Parent int number에 대입
	}
	
	//상속은 단 방향(위에서 아래로- 조상에서 아래로) 따라서func()는 Child고유 메소드
	public void func() {
		//number = 1;
		//The field Parent.number is not visible -> private 변수
		name = "홍길동";
	}
}

'JAVA > 객체 코드' 카테고리의 다른 글

상속(3) 형변환, 배열// (다형성)  (0) 2020.06.03
상속(2)  (0) 2020.06.03
객체 3대 특징  (0) 2020.06.03
constructor 생성자  (0) 2020.06.02
객체 3대 특징 - 은닉성( 캡슐화 )  (0) 2020.06.02