[상속]
- 한 객체의 필드(변수)와 메소드를 다른 객체가 물려받을 수 있는 기능
< 효과 >
- 코드 중복를 제거
- 유지 보수에 좋음
<코드 예시>
class SubstractionableCalculator extends Calculator{
public void substract() {
System.out.println(this.left-this.right);
}
}
- extands 객체 이름 : 객체의 기능을 확장
- SubstractionableCalculator가 Calculator의 기능을 부모로 해서 상속
- this.left, this.right는 Calculator 객체에서 정의된 것이다.
객체에 메소드를 추가하는 게 어려움
1. 객체를 자신이 만들지 않아서 소스를 변경할 수 없음. (변경할 수 있다고 해도 원소스를 업그레이드하면 추가하고 싶은 메소드가 사라짐)
2. 객체가 다양한 곳에서 활용되고 있는데 메소드를 추가하면 다른 곳에서는 불필요한 기능이 포함될 수 있음.
[ 클래스 다이어그램 ]
- 클래스와 클래스의 관계를 그림으로 간단하게 표현하는 것
[ 생성자 ]
- 객체 생성
- 그 과정에서 해야 할 일을 생성자 메소드에 지정해서 초기화 작업할 수 있음
- 객체를 생성할 때 자동으로 그 생성자를 만들어준다
- 매개변수가 있는 생성자가 있을 때 자동으로 기본 생성자를 만들어주지 않음
- 부모클래스에 기본 생성자를 만든다
super();
- super = 부모 클래스
- () 생성자
- 부모클래스의 생성자
[ overriding ]
- 부모가 가지고 있는 메소드를 물려받지만 자식이 필요에 따라 그 메소드를 재정의해서 기능을 변경
- 부모의 return datatype이 자식의 return datatype과 같아야 overriding가 가능
<예시>
//부모클래스의 메소드
public void avg(){
System.out.println((this.right+this.left)/2);
}
//자식클래스의 메소드
public void avg(){
System.out.prinln("평균은 ",(this.right+this.left)/2);
}
//void대신 int 쓰면 안됨. datatype이 다르면 X
//public int avg(){
// System.out.prinln("평균은 ",(this.right+this.left)/2);
//}
[메소드의 서명 signature]
- 메소드의 이름
- 메소드 매개변수의 숫자와 데이터 타입, 순서
-메소드 리턴 타입
[ overloading ]
- 메소드의 이름이 같아도 매개변수의 형식이나 숫자 다르면 다른 메소드로 인식
자바 공부 파이팅!!
강의 출처 :
https://www.youtube.com/watch?v=QK8bgsenqLY&list=PLuHgQVnccGMCeAy-2-llhw3nWoQKUvQck&index=84
'Programming language > Java' 카테고리의 다른 글
JRadioButton 중복 선택 방지 | Avoid selecting multiple JRadioButton [java swing] (0) | 2024.09.05 |
---|---|
eclipse 이클립스 삭제하기 (0) | 2023.01.11 |
[생활코딩] JAVA 기초 7일차 (0) | 2022.01.19 |
[생활코딩] 다시 시작하는 JAVA 기초 6일차 (0) | 2022.01.09 |
[생활코딩] 다시 시작하는 JAVA 기초 5일차 (0) | 2022.01.06 |