본문 바로가기

백엔드개발자 준비하기

[백엔드개발자 준비하기] 상속

-Extends 를 사용하여 상속받음

-부모클래스가 가지고 있는 메소드와 변수 사용가능

-부모 클래스는 하나여야함(단일상속)

 

수퍼 
나의 상위 객체 (부모클래스
- 항상 최상위에 있어야 함
디스
자기자신 생성자
- 자기자신의 주소를 매개변수로 넣을 때 

오버라이딩
메소드명과 매개변수 타입이 같아야 함 이름은 바껴도 됨

오버로딩 
이름같고 매개변수 갯수와 타입이 다르면 가능

 

예시

-Car 클래스를 KiaCar 와 HyundaiCar 가 상속받음

 

[Car]

public class Car {

	private String company;
	private String model;
	private int price;

	public Car() {
		System.out.println("부모");
	}

	public int discountPrice(int percentage) {
		return price - (price * percentage / 100);
	}

	public String getCompany() {
		return company;
	}

	public void setCompany(String company) {
		this.company = company;
	}

	public String getModel() {
		return model;
	}

	public void setModel(String model) {
		this.model = model;
	}

	public int getPrice() {
		return price;
	}

	public void setPrice(int price) {
		this.price = price;
	}

}

 

[KiaCar]

public class KiaCar extends Car {

	public KiaCar() {
		super();
		System.out.println("자식");
	}
	
	@Override
	public int discountPrice(int percentage) {
		return super.discountPrice(percentage);
	}
	
}

 

[HyundaiCar]

public class HyundaiCar extends Car {

	private boolean premium;
}

 

[ExtendsMain]

public class ExtendsMain {

	public static void main(String[] args) {
		
		KiaCar kiaCar = new KiaCar();
		
		System.out.println(kiaCar);
		
		kiaCar.setPrice(30000);
		
		System.out.println(kiaCar);
		
		System.out.println(kiaCar.getPrice());
		System.out.println(kiaCar.discountPrice(20));
		
	}

}