[JAVA] 상속과 인터페이스

공부기록·2023년 10월 3일
0
post-thumbnail

📘상속의 개념과 활용

  • 상속의 효과
    • 부모 클래스를 재사용하여 자식 클래스를 빨리 개발할 수 있다.
    • 반복되는 코드의 중복을 줄이고 유지 보수가 편하며 객체 다향성 구현이 가능하다.


🧩extends

  • 자식 클래스가 부모 클래스를 상속받을 때 사용하는 키워드이다.
class Person{
    String name; 
    int age;
    
}

class Student extends Person{
	public void set(){
    	name = "유엠씨";
        age = 5;
    }
}

public class Main {
    public static void main(String[] args) {
        Student student = new Student();
        student.set();
    }
}

📘인터페이스란?

  • 인터페이스의 역할
    • 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할을 하는 일종의 추상클래스이다.
    • 개발 코드가 객체에 종속되지 않게한다.
    • 개발 코드 변경없이 리턴값 또는 실행내용이 다양해 질 수 있다. (다형성)

🧩implements

public interface RemoteControl{
	//상수
	int MAX_VOLUME = 10;
    int MIN_VOLUME = 0;
    
    //추상메소드
    void turnOn();
    void turnOff();
    
    //디폴트메소드
    default void setMute(boolean mute){
    	if(mute){
        	System.out.println("무음 처리합니다.");
        }else {
        	System.out.println("무음 해제합니다.");
        }
  	}
    
    //정적메소드
    static void changeBattery() {
    	System.out.println("건전지를 교체합니다.");
    }
}

public class Audio implements RemoteContol { //인터페이스
	// 추상메소드를 구현한다.
	private int volume;
    
    public void turnOn(){
    	System.out.println("Audio를 킵니다");
    }
    public void turnOff(){
    	System.out.println("Audio를 끕니다.");
    }
	public void setVolume(int volume){
    	if(volume > RemoteControl.MAX_VOLUME){
        	this.volume = RemoteControl.MAX_VOULUME;
        } else if(volume < RemoteControl.MIN_VOLUME) {
        	this.volume = RemoteControl.MIN_VOULUME;
        } else {
        	this.volume = volume;
        }
        System.out.println("현재 Audio 볼륨 : " + volume);
    }
}

public class RemoteControlExample {
	public static void main(String argc[]) {
    	RemoteControl rc;
        rc = new Audio();
        rc.turnOn();
    }
}
  • 다중 인터페이스 구현도 가능하다.
public class 구현클래스명 implements 인터페이스a, 인터페이스b{
	//a와 b의 추상메소드의 실체 메소드 선언
}

0개의 댓글

관련 채용 정보