일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- DB
- sql
- 웹프로그래밍
- 웹
- 객제지향
- 공부를열심히
- orcle
- 프로그래밍
- jsp
- Java
- 오라클
- CSS
- 데이터베이스
- Oracle
- javascript
- 공부
- 자바
- html
- 객제지향프로그래밍
- 객체지향
- web
- 프로젝트
- squery
- 객체지향프로그래밍
- 코딩
- 주말이다..
- ERWin
- Project
- 테이블
- UI
- Today
- Total
햄찌개
Java 11일차 객체지향의 재사용 본문
1. 상속(~~은 ~~이다.) : is a
- 기존의 클래스를 재사용하여 새로운 클래스를 만든다.
- 적은양의 코드로 새로운 클래스를 작성할 수 있다.
- 새로 작성하고자 하는 클래스의 뒤에 상속 받고자 하는 클래스를 키워드 'extends'와 함께 써주기만 하면 된다.
class Child extends Parents {
}
- 상속을 해주는 클래스를 '조상클래스' 상속을 받는 클래스를 '자손클래스'라고 부른다.
: 조상클래스 - 상위클래스, 부모클래스, 기반클래스
: 자손클래스 - 하위클래스, 자식클래스, 파생클래스
- 상속을 받을때는 멤버만 상속받는다.
- 항상 자손클래스가 부모클래스보다 같거나 크다.
2. 포함 (~~은 ~~을 포함하고 있다.) : has a
- 상속이외에 클래스를 재사용하는 방법.
- 자손클래스의 멤버변수로 다른클래스를 선언하는 방법
3. toString()
- 인스턴스와 정보를 제공할 목적으로 사용된다.
- 참조변수를 출력하면 참조변수가 가르키고 있는 인스턴스의 toString()를 호출한다.
4. 단일상속
- 자바에서는 단일상속(두개이상불가)만 가능하다.
- class TVCR extends TV, VCR{ //허용하지 않는다.
}
- Tv와 VCR에 동일한 메서드가 존재 한다면 어떤 메서드를 상속받는지 알수 없다.
- Tv의 메서드 명을 변경한다면 그 동안 사용해온 모든 곳을 수정해주어야 한다.
- 클래스 간의 관계가 명확하다.
5. Object 클래스 : 모든 클래스의 최상위 클래스이다.
- 다른 클래스를 상속받지 않는 클래스는 Object클래스를 상속받는다.
- 모든 클래스는 Object 클래스를 상속받게 되어있다.
class A extends Object{
}
- toString(), equals()를 사용할 수 있는 것은 Object클래스의 메서드 이기 때문이다.
6. 오버라이딩 (overriding)
- 조상 클래스로 부터 상속받은 메서드의 내용을 재정의 하는 것.
- 오버라이딩이 되기 위한 조건 : 선언부가 동일하면 된다.
: 메서드명이 동일
: 메개변수의 갯수와 타입이 동일
: 반환 타입이 동일
- 부모클래스로부터 상속받는 자손클래스의
: 접근제어자는 부모보다 좁은 범위로 설정할 수 없다.
: 예외의 갯수는 부모보다 많이 선언할 수 없다.
제어자 void method() 예외처리 {
}
7. super
- 조상클래스의 멤버와 자손클래스의 멤버가 중복정의되어 있을때 구분할 목적으로 사용된다.
- 조상의 멤버와 자손의 멤버를 구분한다는 점을 제외하고는 this.과 동일 하다.
8. super() : 조상 클래스의 생성자를 의미
- this()와 마찬가지로 super()도 생성자 호출이다.
- this()는 같은 클래스 내에서 다른 생성자를 호출 할 때 사용한다.
- super() 자손클래스의 생성자 내에서 부모클래스의 생성자를 호출 할 때 사용한다.
- this()와 super()은 둘다 첫줄이라 같이 사용 불가.
'초급 JAVA' 카테고리의 다른 글
Java 13일차 객체지향의 다형성 (0) | 2020.08.28 |
---|---|
Java 12일차 객체지향의 제어자 (0) | 2020.08.27 |
Java 10일차 객체지향 프로그래밍 -( 3 ) (0) | 2020.08.27 |
Java 9일차 객체지향 프로그래밍 -( 2 ) (0) | 2020.08.27 |
Java 8일차 객체지향 프로그래밍 -( 1 ) (0) | 2020.08.27 |