JAVA

29. 상속

NamGH 2023. 8. 7. 21:05

상속(Inheritance)

상속이라고하면 말 그대로 부모가 자식에게 물려주는것을 말한다  

이때 상속받는 클래스를 자식 클래스 물려주는 클래스를 부모 클래스라고 말한다 

상속의 장점

가장 큰 장점은 코드의 중복을 줄일수 있고 다형성을 구현할 수 있다는 것이다

상속하는 법

class 클래스명 extends 부모클래스명{}  이런식으로 구현하면 된다


class Transport{
private String name;
private int price;
void setName(String name) {
this.name = name;
}
void setPrice(int price) {
this.price = price;
}
String getName() {
return name;
}
int getPrice() {
return price;
}
}
class Bus extends Transport{
private int maxPassenger;
private int busnumber;
Bus(String name, int price, int maxPassenger, int busnumber){
setName(name);
setPrice(price);
this.maxPassenger = maxPassenger;
this.busnumber = busnumber;
}
 
int getMaxPassenger() {
return maxPassenger;
}
int getBusnumber() {
return busnumber;
}
 
void display() {
System.out.println(getName() + "/" + getPrice() + "/" + maxPassenger + "/" + busnumber);
}
}
class ExpressBus extends Transport{
private String destination;
private String seat;
ExpressBus(String name, int price, String destination, String seat){
setName(name);
setPrice(price);
this.destination = destination;
this.seat = seat;
}
String getDestination() {
return destination;
}
String getseat() {
return seat;
}
void display() {
System.out.println(getName() + "/" + getPrice() + "/" + destination + "/" + seat);
}
}
public class Ex02_남경현 {
public static void main(String[] args) {
Transport t = new Transport();
Bus b = new Bus("시내버스", 1000, 30, 200);
ExpressBus e = new ExpressBus("고속버스", 7000, "부산", "A01");
b.display();
e.display();
}
}

다음은 부모가 Transport 자식 클래스가 Bus,  ExpressBus인 클래스에서 입력받은 값들의 결과를 출력하는 문제이다

먼저 priavete로 변수선언을 하고 private이기때문에 set과 get으로 설정해주고 setname과 setprice로 부모 클래스의 name과 price를 가져올수 있지만 후에 배울 super(name,price)를 통해 부모에게 전달해주는 방식도 가능하다 메인함수에 깨끗하게 출력시키기위해 display라는 메서드를 사용했는데 출력할 내용을 적어줬다 결과는 객체를 생성한 후 각각 값들을 넣어주어 b와 e의 display로 결과값을 출력시켰다