Java(Class2)_Inheritance_01

2024. 10. 30. 17:14·Java/기초 내용 정리

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
'Java/기초 내용 정리' 카테고리의 다른 글
  • Java(Class2)_Inheritance_03
  • Java(Class2)_Inheritance_02
  • Java(Class&Method)_Exam_06
  • Java(Class&Method)_Exam_05
mw41817
mw41817
일생의 개발 기록 저장소
  • mw41817
    IT 개발 일지
    mw41817
    • Index (487)
      • HTML (36)
        • 기초 내용 정리 (36)
      • CSS (29)
        • 기초 내용 정리 (29)
      • JavaScript (60)
        • 기초 내용 정리 (60)
      • JQuery (38)
        • 기초 내용 정리 (38)
      • Java (232)
        • 기초 내용 정리 (232)
      • JSP (46)
        • 기초 내용 정리 (46)
      • Spring, Boot (31)
        • 기초 내용 정리 (31)
      • DB (5)
        • Oracle SQL (5)
      • Code WorkBook (6)
        • programmers (6)
        • Baekjoon (0)
      • 기타 (1)
        • 유용한 사이트 (3)
  • 전체
    오늘
    어제
  • 글쓰기 관리
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 카테고리
    • 주인장 GitHub
  • 공지사항

  • 인기 글

  • 태그

    html #코딩 #프로그래밍 #기초
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
mw41817
Java(Class2)_Inheritance_01
상단으로

티스토리툴바