자바에서 상속하는 방법은 두가지방법이 있다 바로 extends와 implement이다.
두개의 차이점은 뭘까
class Vehicle {
protected int speed = 3;
public int getSpeed(){
return speed;
}
public void setSpeed(int speed){
this.speed = speed;
}
}
class Car extends Vehicle{
public void printspd(){
System.out.println(speed);
}
}
public class ExtendsSample {
public static main (String[] args){
Car A = new Car();
System.out.println(A.getSpeed());
A.printspd();
}
}
이 코드는 extends의 예시이다
Car클래스는 Vehicle을 상속을 받아 ExtendsSample클래스에서 Car의 인스턴스를 만들어 Vehicle의 함수를 사용할수있다
interface TestInterface{
public static int num = 8;
public void fun1();
public void fun2();
}
class InterfaceExam implements TestInterface{
@Override
public void fun1(){
System.out.println(num);
}
@Override
public void fun2() {
}
}
public class InterfaceSample{
public static void main(String args[]){
InterfaceExam exam = new InterfaceExam();
exam.fun1();
}
}
다음은 implements의 예시이다
implements가 사용된 Class에서는 TestInterface 클래스에있는 함수를 오버라이딩(재정의)을 해줘야 상속이 완료된다
그 이후는 extends와 똑같은 매커니즘이다
그러면 extends와 implements의 차이는 오버라이딩 유/무 만 차이가 있는것인가?
그러면 implemets는 쓸모없을거같다.
가장 큰 차이점은 다중상속의 가능 유/무 이다
extends는 한 클래스에서 여러개의 클래스를 상속받고 싶어도 받지를못한다
하지만 implements는 여러개의 클래스를 상속받을수있다
public class Son implements Father, Mother{...}
이 코드처럼 말이다.
'개발' 카테고리의 다른 글
@Transactional(readOnly = true) 를 사용하는이유와 주의해야할점 (0) | 2024.06.08 |
---|---|
자바 제네릭이란 무엇인가? (0) | 2024.06.07 |
java interface란 무엇인가? (0) | 2024.06.07 |
JSON이란 무엇인가? (0) | 2024.06.06 |
spring 어노테이션 정리 (0) | 2024.06.06 |