영보의 SystemOut.log

[JAVA] 객체지향 특징/ 클래스/자바 상속/오버로딩과 오버라이딩 본문

Language/JAVA

[JAVA] 객체지향 특징/ 클래스/자바 상속/오버로딩과 오버라이딩

영보로그 2020. 7. 14. 10:30
반응형

* 클래스의 구성요소 : 맴버변수, 생성자, 메소드

 

* 객체지향의 3대 요소  

데이터보호  데이터 사용하지 못하게 만드는 작업 : 은닉화
 클래스와 클래스의 연결 → 감춘 데이터를 매소드를 통해 접근이 가능 : 캡슐화

 접근 지정어 
  - private  
  - protected 
  -  piblic 
  - default

재사용기법 상속 is-a
포함 has-a
수정, 추가 다형성
 - 오버로딩 : 새로운 기능 추가
 - 오버라이딩 : 기존에 있던 기능을 수정

 

1. 상속

상속
(Inheritance)
 부모가 소유하고 있는 재산의 일부를 자식이 물려받는 것처럼,  
 클래스를 가져다가 확장해서 새로운 클래스를 만드는 기술
상속의 장점  1) 재사용가능
 2) 코드 간결성
 3) 개발시간 단축과 편한 코딩
특징  1) 단일 상속만 가능
 2) java.lang.Object를 무조건 상속

 

 

2. 오버로딩과 오버라이딩

오버로딩 오버라이딩
메소드명이 동일 메소드명이 동일
메소드 매개변수 갯수 다 데이터형이 다르다 매소드 매개변수가 동일
(갯수, 데이터형)
리턴형은 관계 X 리턴형 동일해야함
같은 클래스 상에서 만들어짐 반드시 상속 관계
  확장 가능, 축소 불가능

 

3. 접근지정어

 - 접근 지정어 크기 : public > protected > default > private

  같은클래스 다른패키지 다른패키지
(상속)
모든클래스
private O X X  
default O O X  
protected  O O O  
public O O O O

 

 

예) 오버로딩

1
2
3
4
5
6
Class A
    {
        public void add(int a, int b) {}
        public void add(double a, double b) {}
        public void add(String a, String b) {}
    }
cs

 

예 ) 오버 라이딩

1
2
3
4
5
6
7
8
Class A
    {
        public void add(int a, int b) {}
    }
    Class B extends A
    {
        public void add(int a, int b) {}
    }
cs
반응형