상속
상속이란?
- 기존에 있는 클래스의 맴버 변수나 메소드를 물려받아 새로운 클래스를 만드는 것
- 상속을 통하여 객체지향 프로그램의 주요 특징인 코드의 재사용성을 구현할 수 있다.
상속받는 클래스
- 서브 클래스, 하위 클래스, 자식 클래스
상속하는 클래스
- 수퍼 클래스, 상위 클래스, 부모 클래스
클래스 정의의 예
맴버 변수
자동차 - 차 기종, 색상, 제조회사, 속도
택시 - 미터기, 무게
트럭 - 무게
메소드
자동차 - 속도를 올린다, 속도를 내린다, 출발, 정지
택시 - 미터기를 올린다, 내린다
트럭 - 짐을 싣는다, 내린다.
1번 - 클래스 상속 기초
package sevenClass;
public class Test0502_01 {
public static void main(String[] args) {
Student sm1 = new Student();
sm1.name = "홍길동";
sm1.printmyself();
sm1.hakbun = "20710";
sm1.printhakbun();
}
}
class Human{
String name;
void printmyself() {
System.out.printf("이름은 %s\n", this.name);
}
}
class Student extends Human{
String hakbun;
void printhakbun() {
System.out.printf("학번은: %s", this.hakbun);
}
}
Human Class
이름 변수 생성
이름은 출력하는 메소드 생성
Student Class
Human Class를 상속 받아서 Human 클래스 안에 변수와 메소드를 사용 가능
학번 변수 생성
학번을 출력하는 메소드 생성
Main
학생 객체 sm1 생성
sm1의 이름을 홍길동으로 설정
sm1의 이름 출력
- 학생 클래스는 사람 클래스를 상속받아서 클래스의 변수, 메소드 사용 가능
sm1의 학번을 지정
학번 출력
결과
이름은 홍길동
학번은: 20710
2번 - 자동차
package sevenClass;
public class Test0502_02 {
public static void main(String[] args) {
Car c1 = new Car();
c1.carname = "벤틀리";
c1.printname();
Truck t1 = new Truck();
t1.carname = "프론티오";
t1.t = 3;
t1.printname();
t1.printt();
SportsCar s1 = new SportsCar();
s1.carname = "람보르기니";
s1.velocity = 100;
s1.printname();
s1.speedUp(30);
}
}
class Car{
String carname;
void printname() {
System.out.printf("차의 이름은: %s\n", this.carname);
}
}
class Truck extends Car{
int t;
void printt() {
System.out.printf("적재할 수 있는 무게는: %d\n", this.t);
}
}
class SportsCar extends Car{
int velocity;
void speedUp(int v) {
this.velocity += v;
System.out.printf("현재 속력은: %d\n", this.velocity);
}
}
Car Class
차이름 변수 생성
차이름 출력하는 메소드 생성
Truck Class
Car 클래스를 상속받는 클래스
적재량을 나타내는 t 변수 생성
t를 출력하는 메소드 생성
SportsCar Class
Car 클래스를 상속받는 클래스
속도 변수 생성
속도 증가를 출력하는 메소드 생성
Main
c1, t1, s1 객체 생성
c1 이름 지정, 출력
t1 이름 지정, 적재량 지정, 출력
s1 이름 지정, 속도 지정, 출력
결과
차의 이름은: 벤틀리
차의 이름은: 프론티오
적재할 수 있는 무게는: 3
차의 이름은: 람보르기니
현재 속력은: 130
3번 - Sports
package sevenClass;
public class Test0502_03 {
public static void main(String[] args) {
BaseBall b1 = new BaseBall("야구", 10);
Soccer s1 = new Soccer("축구", 11);
System.out.printf("종목은: %s\n", b1.getName());
System.out.printf("선수 수는: %s\n", b1.getPlayer());
b1.rule();
System.out.printf("종목은: %s\n", s1.getName());
System.out.printf("선수 수는: %s\n", s1.getPlayer());
s1.rule();
}
}
class Sports{
String name;
int player;
Sports(){}
Sports(String n, int p){
this.name = n;
this.player = p;
}
int getPlayer() {
return this.player;
}
String getName() {
return this.name;
}
void rule() {
System.out.println("경기의 룰은 해당 클래스에서 생성합니다.");
}
}
class BaseBall extends Sports{
BaseBall(String n, int p){
super(n, p);
}
void rule() {
System.out.println("야구룰은 --에게 물어볼것");
}
}
class Soccer extends Sports{
Soccer(String n, int p){
super(n, p);
}
void rule() {
System.out.println("축구룰은 --에게 물어볼것");
}
}
Sports Class
이름, 사람 수 변수 생성
생성자 생성
겟터 생성
rule 메소드 생성
BaseBall Class
Sports Class를 상속받는 클래스 생성
sports의 생성자를 호출하는 생성자를 생성
rule 메소드 생성
Soccer Class
Sports Class를 상속받는 클래스 생성
sports의 생성자를 호출하는 생성자를 생성
rule 메소드 생성
Main
야구 객체 b1, 축구 객체 s1 생성
종목 출력, 사람 수 출력
룰 출력
결과
종목은: 야구
선수 수는: 10
야구룰은 --에게 물어볼것
종목은: 축구
선수 수는: 11
축구룰은 --에게 물어볼것
2024.04.22 - [자바] - JAVA - 0422
JAVA - 0422
1번 - 최대, 최소, 합, 평균 구하기 package sevenClass; public class Test0422_01 { public static void main(String[] args) { int[] arr = {2, 56, 88, 41, 3, 78, 95, 64, 43, 33}; double[] arr2 = {4.4, 5.8, 89.7, 95.4, 77.8, 64.3, 34.9}; System.out.pr
conewbie.tistory.com
'자바' 카테고리의 다른 글
JAVA - 0516 (0) | 2024.05.16 |
---|---|
JAVA - 0509 (0) | 2024.05.09 |
JAVA - 0422 (0) | 2024.04.22 |
JAVA - 0415 (0) | 2024.04.15 |
JAVA - 0411 (0) | 2024.04.11 |