🎨 Programming/JAVA

[JAVA] 14. 상속

ryang x2 2020. 6. 21. 02:22
728x90
반응형

#객체지향 개발을 위한 방법론

# 상속

상속이란, 특정 클래스를 구성할 때 기존 클래스의 데이터와 메소드를 부모 클래스에서 그대로 물려받아 중복적인 코드를 줄이는 것과, 하나의 변수 타입으로 여러 종류의 객체를 의미하는 추상화된 방식의 프로그램이 가능하게 하는 객체지향 기법입니다. 

 


클래스 자체는 기능을 만든다라는 뜻 하나의 설계도와 같다

특정값을 가지게 하는 필드 

행동을 하게 하는 메소드

보안상 또는 실수로 인하여 은닉화 하라 

객체가 애초에 만들어지면서 생성자를 만들어 값을 생성해 놓는다. 

 


 

1. 사용방법

   extends 부모클래스 {
        // 추가하고 싶은 내용
        // 덮어쓰기
    }

 

 

예시 1)

1. 필드생성
2

● 생성자 : 매개변수가 있는 생성자를 생성하면 빈 생성자는 호출되지 않습니다. 

 

3
4. Product 객체 출력값 확인

▼상속

 

5. 부모객체 Product // 자식객체 Monior 상속

상속을 해줄 클래스는 기본 생성자가 존재해야 합니다. 

 

7

오버라이딩 : 상속관계에서 부모와 같은 메서드 이름을 만들어서 노출되게 한 것.(즉, 부모 메소드를 재정의 하는 것.)

 

Monitor 객체 생성할 때 상속의 예시

 

 

예시 2)

 

1. 빈생성자에 print 입력

● 자식은 자신의 클래스 호출을 할 때 부모의 클래스를 반드시 한 번은 호출하게 된다.

 

2. 상속 후 자식객체에 생성자 만들기
3

부모의 상속받을 내용을 가져오기 위해서는 this 대신 super라고 하면 된다. 

 

4

●자신의 필드를 접근할 때는 this. / 부모 클래스 접근할 때는 super. / 내 클래스 내에서 시그니처가 다른 생성자를 호출할 때는 this() 메서드 쓴다.

●상위 내용을 주석 처리한 이유는 자바에서는 값을 바로 넣는 건 보안상 또는 실수로 좋지 않기 때문에 하단 생성자로 입력할 수 있도록 해준다.

 

5

 

 

예시 3)

1. SmartPhone 클래스

 

2. main sp1 노출값 확인

● 자식은 자신의 클래스 호출을 할 때 부모의 클래스를 반드시 한 번은 호출하게 된다.

따라서 "Product 클래스 생성자 호출!" 확인되는 것이다.

 

3. main sp2 노출값 확인

 

 

예시 4)

1. Speaker 클래스 생성
2

● 자바에서 클래스를 만들면 무조건 상속을 해주는 object가 있다. ( java.lang.object )

 

[출처] https://docs.oracle.com/javase/8/docs/api/index.html

 

● 자바의 경우에 상속은 무조건 하나의 클래스만 받을 수 있다.

 

 

3. 

● toString = 객체@메모리주소(16진수) 확인하는 메서드

 

 

 

 

 

 

 

728x90
반응형