메인클래스에서 객체를 끌어다 쓸 때 같은 메서드가 있으면
각 객체의 같은 메서드를 가져올 필요없이
부모에게 상속 받아서 그 객체의 메서드인것 처럼 쓸 수 있다.
상속하는 방법 extends 클래스이름
<Example 클래스>
public class Example {
public static void main(String[] args) {
One one = new One();
one.value();
one.first();
Two two = new Two();
two.value();
two.second();
}
}
위와 같은 코드를 실행할 때, 각각 이름이 One과 Two인 클래스를 통해 객체를 생성했다.
<One 클래스>
public class One{
public void value(){
System.out.println("공통 메서드")
}
public void one(){
System.out.println("one메서드")
}
}
<Two 클래스>
public class Two{
public void value(){
System.out.println("공통 메서드")
}
public void two(){
System.out.println("two메서드")
}
}
각 객체에 value()라는 메서드가 공통인데, 이를 부모 클래스에 작성하고 상속을 시키면 각 객체의 메서드처럼 사용할 수 있다.
<<상속을 사용한 수정된 코드>>
<Parent 클래스>
public class Parent{
public void value(){
System.out.println("공통 메서드")
}
}
<수정된 One 클래스>
public class One extends Parent{
public void one(){
System.out.println("one메서드")
}
}
<수정된 Two 클래스>
public class Two extends Parent{
public void two(){
System.out.println("two메서드")
}
}
이와같이 수정하면 메인클래스에서 메서드를 동일하게 사용할 수 있다.
오버라이딩(Overriding)
오버라이딩은 상속받은 기능을 확장(extend)하고 싶을 때 부모의 기능을 따르지 않고 추가할 수 있다.
public class One extends Parent{
public void one(){
System.out.println("one메서드");
}
@Override
public void value(){
System.out.println("새로운 value");
}
}
One의 부모인 Parent 클래스에 value()라는 메서드가 있지만 오버라이딩으로 인해 부모를 호출하지 않고 본인클래스의 value()를 사용한다.
'JAVA' 카테고리의 다른 글
다형성의 이해와 다운캐스팅 (instanceof) (0) | 2024.08.28 |
---|---|
super, super() (0) | 2024.08.27 |
상속 메모리 구조 (0) | 2024.08.27 |
final 키워드 (0) | 2024.08.27 |
static (0) | 2024.08.26 |