자바 공부/[자바] 기본 공부

[자바 공부 3일차] 상속과 추상클래스

햅2024 2024. 11. 8. 19:20

 

상속을 통해 부모 클래스에 있는 함수들을 자식클래스에서 이용할 수 있다.

 

JAVA에서 상속은 extands 를 통해 이용한다.

 

부모 클래스에 더하기 함수를 작성해준다.

public class ex_Parent {

	public int Sum (int a, int b)
	{
		int result = 0;
		result = a+b;
		
		return result;
	}
}

 

자식클래스는 상속만 받을 뿐, 아무런 함수가 작성되지 않았다. 

public class ex_Child extends ex_Parent {

}

 

 

public class Child_Exam {
	public static void main(String[] args)
	{
		ex_Child child = new ex_Child();

		int a= 5;
		int b= 6;

		System.out.printf("%d", child.Sum(a, b));
	}
}

그러나 이와 같이 자식 클래스를 새로 생성하여 부모클래스의 함수를 사용할 수 있다. 

 

 

그럼 자식클래스에선 어떻게 함수를 사용할까?

자식클래스는 부모클래스의 함수를 그대로 상속 받기 때문에 별다른 선언 없이 사용할 수 있다.

public class ex_Child extends ex_Parent {

	public void Cal()
	{
		int a = 10;
		int b = 12;
		
		System.out.printf("%d", Sum(a, b));
	}
}

 

 

그럼 이제 추상클래스에 대해서 알아보자. 

추상클래스를 사용하면 같은 이름의 함수를 상속 받은 클래스에 각각 다르게 구현할 수 있다.

 

public abstract class Bird {
	public abstract void sing();
	public void fly()
	{
		System.out.println("날다");
	}
}

Bird 라는 추상클래스를 구현하였다. 그럼 이 클래스를 상속 받은 duck이란 클래스를 만들어 보자

 

public class Duck extends Bird {

	@Override
	public void sing() {
		// TODO Auto-generated method stub
		System.out.println("꽥꽥");
	}

}

이와 같이 상속 받은 클래스마다 각각 다르게 구현할 수 있다.