내가 기존에 어떤 클래스를 만들어 가지고 있는데
이 클래스와 밀접한 관련이 있는 새로운 클래스를 만들때
IS-A관계!!를 만들 필요가 있다고 한다면
(사람 - 학생) , (컴퓨터 - 노트북) ...
기존 클래스에 있는 멤버들이 모두 필요로 하고
멤버들을 추가해서 사용하고 싶을때 사용한다!
Super class(부모)
Sub class(자식)
상속과 생성자
생성자가 없을 경우 자동으로 no-parameter 생성자가 만들어진다.
생성자가 하나라도 있을 경우 자동으로 만들어지지 않는다.
모든 서브 클래스의 생성자는 먼저 수퍼클래스의 생성자를 호출한다.
1. super()를 통해 명시적으로 호출해 주거나,
2. 그렇지 않을경우에는 자동으로 no-parameter 생성자가 호출된다.
흔한오류 :
수퍼클래스에 no-parameter 생성자가 없는데, 서브클래스의 생성자에서
super() 호출을 안해주는 경우
package chapter3;
public class Computer {
public String manufacturer;
public String processor;
public int ramSize;
public int diskSize;
public double processorSpeed;
public Computer(String man,String proc,int ram,int disk,double procSpeed) {
manufacturer = man;
processor = proc;
ramSize = ram;
diskSize = disk;
processorSpeed = procSpeed;
}
public double computePower() {
return ramSize * processorSpeed;
}
public double getRamSize() {
return ramSize;
}
public double getProcessorSpeed() {
return processorSpeed;
}
public int getDistSize() {
return diskSize;
}
}
수퍼클래스
package chapter3;
public class Notebook extends Computer {
public double screenSize;
public double weight;
public Notebook(String man,String proc, int ram, int disk, double speed, double screen, double weight){
super(man,proc,ram,disk,speed);
screenSize = screen;
this.weight = weight;
}
public static void main(String[] args) {
Notebook test = new Notebook("Dell","15",4,1000,3.2,15.6,1.2);
}
}
서브클래스
'알고리즘 with 자바 > 자료구조' 카테고리의 다른 글
| 상속 3 (0) | 2021.06.30 |
|---|---|
| 상속 2 (0) | 2021.06.29 |
| static 그리고 public 2 (0) | 2021.06.28 |
| static 그리고 public 1 (0) | 2021.06.28 |
| 메서드와 생성자 3 (0) | 2021.06.24 |