2024-10-30




모델명 : 소나타
배기량 : 2000
차량 문 수 : 4
package inheritance;
/*
* 상속(inheritance)
* - 객체지향 프로그램 4대 특징중 하나.
* - 실 세계에서 상속은 상위 객체의 속성이 하위 객체에 물려져서
* 하위 객체가 상위 객체의 속성을 모두 가지는 개념임.
* - 자바에서의 상속은 자식클래스가 부모클래스의 속성을 물려 받고
* 기능을 추가하여 확장(extends)하는 개념임.
* - 상속은 슈퍼클래스의 필드와 메서드를 물려 받아서 코드를 재사용
* 함으로서, 코드 작성에 드는 시간과 비용은 줄일 수 있음.
* - 기존에 이미 잘 만들어진 클래스를 재사용하여 새로운 클래스를
* 생성하는 자바 문법.
* 즉, 특정 클래스를 만들 때 기존의 클래스의 데이터(속성)와
* 기능(메서드)을 그대로 물려받아서 중복적인 코드를 없애줌,
* (클래스의 재사용, 코드의 중복을 없애줌)
* - 자식과 부모의 관계로 형성이 되어 있음.
* ==> 부모클래스 : Super, Parent 클래스 라고 하기도함.
* ==> 자식클래스 : Sub, Child 클래스 라고 하기도함.
* ==> 자식은 부모의 멤버보다 같거나 많다.
* - 상속의 대상은 멤버(멤버변수, 멤버메서드)
* ==> 단, 생성자나 private 접근 제한을 갖는 멤버변수와
* 멤버메서드는 상속에서 제외.
* - 상속 시 사용되는 키워드 : extends
* - 상속은 단일상속만 가능함.
* ==> 즉, 상속을 받을 수 있는 클래스는 하나이다.
* - 상속의 장점은 클래스의 수정을 최소화 할 수 있다는 장점이 있음.
* 또한 코드의 유지보수의 시간을 최소화시켜 준다는 장점이 있음.
*
* 형식)
* [접근제한] class 자식클래스 extends 부모클래스명 {
* ...............
* }
* - 상속관계 : " ~ 은 ~ 이다" ==> is a 관계
* 포함관계 : " ~ 은 ~ 를 가지고 있다" ==> has a 관계
* ==> 사람은 (name, age, id)를 가지고 있다.
*
* - 주의사항) 부모클래스는 반드시 기존에 미리 정의되어 있어야 함.
*/
public class Car { // 자동차 클래스
// 멤버변수
int cc;
int door;
}
package inheritance;
public class Sonata extends Car{
String model; // 차량 모델명
//int cc; ==> 상속 받은 필드
//int door; ==> 상속 받은 필드
void getCarInfo() {
System.out.println("모델명 : " + model);
System.out.println("배기량 : " + cc);
System.out.println("차량 문 수 : " + door);
} // getCarInfo() 메서드 end
}
package inheritance;
public class Car_01 {
public static void main(String[] args) {
/*
* Sonata 클래스 객체 생성 과정
* - Sonata 클래스의 객체 생성 시 JVM이
* 우선적으로 Car 라는 부모클래스의 객체를
* 먼저 생성한 후 Sonata 클래스의
* 객체를 생성한다.
*/
Sonata sonata = new Sonata();
sonata.model = "소나타";
sonata.cc = 2000;
sonata.door = 4;
sonata.getCarInfo();
}
}'Java > 기초 내용 정리' 카테고리의 다른 글
| Java(Class2)_Inheritance_03 (0) | 2024.10.30 |
|---|---|
| Java(Class2)_Inheritance_02 (0) | 2024.10.30 |
| Java(Class&Method)_Exam_06 (0) | 2024.10.29 |
| Java(Class&Method)_Exam_05 (0) | 2024.10.29 |
| Java(Class&Method)_Exam_04 (0) | 2024.10.29 |