내가 기존에 어떤 클래스를 만들어 가지고 있는데

이 클래스와 밀접한 관련이 있는 새로운 클래스를 만들때

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

+ Recent posts