JAVA

13.[JAVA] 상속, 메소드 오버라이딩

Gunadian 2022. 2. 17. 15:19

상속은 기존에 존재하는 클래스로부터 코드와 데이터를 이어받고 자신이 필요한 기능을 추가하는 기법이다.

 

예를들면 동물을 나타내는 클래스 Animal을 부모클래스라고 하고 Cat을 자식 클래스라고 한다.

자식클래스는 부모 클레스의 특별한 버전이라 생각 할수 있고, 반대로 부모 클래스는 자식 클래스의 일반화된 버전으로볼수있다.

보통 부모 클래스는 추상적이고 자식 클래스는 구체적 이다.

 

상속의 형식

JAVA에서 상속은 클래스 이름 뒤에 extends를 써주고 부모 클래스 이름을 적어주면 된다.

calss Dog extends Animal
{
// 필드 추가
// 메서드 추가
}

 

public class Car {
	
	int speed;
	public void setSpeed(int speed) {
		this.speed = speed;
	}

}
public class SportCar extends Car{

	boolean turbo;
	
	public void setTurbo(boolean flag) {
		turbo = flag;
	}
}
public class SportCarTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SportCar obj = new SportCar(); //자식 클래스 객체 생성
		obj.speed = 100;
		obj.setSpeed(80); //부모클래스 필드와 메서드 사용
		obj.setTurbo(true);  //자체 메소드 사용
	}
}

 

자식 클래스는 부모 클래스의 필드와 메소드를 마음대로 사용 할수 있다.

 

상속이 필요한 이유

1.새로 작성할 필요가 없이 이미 존재하는 클래스의 필드와 메소드를 재사용 할수있다.

2.중복되는 코드를 줄일 수 있다.

 

 


메소드 오버라이딩

자식 클래스에서는 부모 클래스의 메소드 중에서 필요한 것을 다시 정의 할수있다.

이것을 자식 클래스의 메소드가 부모 클래스의 메소드를 오버라이드(재정의)한다 고 말한다

 

public class Animal {
	
	public void eat() {
		System.out.println("먹고 있다.");
	}
}
public class Dog extends Animal{
	public void eat() {
		
		System.out.println("강아지가 먹는다.");
	}	
}
public class DogTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Dog d = new Dog();
		d.eat();
	}
}

 

'JAVA' 카테고리의 다른 글

14.[JAVA] 클래스 ToString ,equals 재정의  (0) 2022.03.07
12.[JAVA] 접근제어  (0) 2021.12.06
11.[JAVA] 메소드 오버로딩  (0) 2021.12.06
10.[JAVA] 클래스 기초  (0) 2021.11.25
9.[JAVA] 객체 지향 프로그램 4가지 개념  (0) 2021.11.17