📚 Study/Java
JAVA :: Test111_상속(Inheritance)
bono-hye
2023. 9. 13. 23:29
// 부모 클래스 == 상위 클래스 == 슈퍼(super) 클래스 == 물려주는 클래스 == 상속하는 클래스
class SuperTest111
{
protected double area; // protected가 나오면 상속을 위해 만들어졌구나~ 생각
// 생성자
SuperTest111()
{
System.out.println("Super Class...");
}
void write(String title)
{
System.out.println(title + " - " + area);
}
}
// 자식 클래스 == 하위 클래스 == 서브(sub) 클래스 == 물려받는 클래스 == 상속받는 클래스
public class Test111 extends SuperTest111
{
/*
protected double area;
// check~!!!
// ※ 생성자는 상속 대상에서 제외된다.
void write(String title)
{
System.out.println(title + " - " + area);
}
*/
// 컴파일 과정에서 자동으로 삽입되는 default 생성자
/*
Test111()
{
// ※ 생성자 내부에서 또 다른 생성자 호출
// → 가능하다. 단, 생성자 내부에서 가장 먼저 실행되어야 한다.
// 텅 비어있다~!!!
// ↓ (사실 텅 비어있는게 아님!)
// 부모 클래스 생성자 호출구문~!!!
super(); -- this. 처럼 사용하는 것으로 생각
}
*/
// 사용자 정의 생성자
Test111()
{
//super(); //-- 컴파일 하는 과정에서 자동으로 삽입~!!!
// => superTest111()
System.out.println("Sub class...")
// super(); //-- (Ⅹ) 뒤에 붙으면 오류난다! 왜? 생성자에서 또 다른 생성자 호출하려면 가장 먼저 해야지 오류가 나지 않는다.
}
public void actionCircle()
{
int r = 10;
area = r * r * 3.141592;
write("원");
}
public void actionRect()
{
int w=20, h=5;
area = w * h;
write("사각형");
}
public static void main(String[] args)
{
// Test111 클래스(자식) 기반 인스턴스 생성
Test111 ob = new Test111();
//--==>> Super Class...
// Sub Class...
ob.actionCircle()
//--==>> 원 - 3.141592
ob.actionRect();
//--==>> 사각형 - 100.0
}
}