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 |
반응형