상속을 다음세대로 이을수있다.
부모->자식->자식이낳은 자식->자식이 낳은자식에 자식 -> 자식이 낳은자식에 자식의 자식
원하는 만큼 상속을 이어받을수있다.
조상클래스 접근시 부모 클래스를 거쳐야한다.
바로 예제를보자
public class Car { public void ride() { System.out.println("달립니다."); } } ========================= public class Bus extends Car{ int peopleNum; public Bus(int peopleNum) { this.peopleNum = peopleNum; } public void takePerson() { System.out.println("승객이 버스에 탔습니다."); peopleNum++; } } ========================== public class SchoolBus extends Bus{ public SchoolBus(int peopleNum) { super(peopleNum); } @Override public void takePerson() { super.takePerson(); System.out.println("학생들이 자리에 모두 착석하고 출발합니다."); } @Override public void ride() { System.out.println("시속 50km/h로 천천히 달립니다."); } } ======================== public class CarMain { public static void main(String[] args) { SchoolBus sb = new SchoolBus(50); sb.takePerson(); sb.ride(); } } |
조상은 Car클래스가 된다.
생성자는 없다.
ride 매서드 만들어서 출력문만들어준다.
Bus 클래스는 Car의 자식이다.
매개변수 생성자를 만들어서 peopleNum를 입력받는다.
takePerson매서드를 말들어서 출력문을 만들어준다.
SchoolBus 클래스는 Bus의 자식이다.
부모인 Bus가 매개변수를 받기때문에 SchoolBus의 생성자도 매개변수를 받아야한다.
public void takePerson() 메서드안에 super.takePerson();을 써줬다.
이것은 부모클래스의 takePerson()을 의미하는것이며 즉 부모클래스의 takePerson의 메서드를 실행하게된다.
그리고 오버라이딩을 사용하기때문에 @Override를 붙여준다.
'(혼) (공) (자)' 카테고리의 다른 글
Class 다형성 / 타입변환 (0) | 2024.01.16 |
---|---|
다중 생성자 (0) | 2024.01.12 |
상속-Super (0) | 2024.01.12 |
Static (0) | 2024.01.12 |
객체지향-오버로딩 (0) | 2024.01.12 |