인터페이스

doldol_kim·2020년 2월 29일
0

Java-OOP

목록 보기
5/6

인터페이스(Interface)란 ?

클래스에서 인터페이스를 사용한다면

그 클래스가 해당 인터페이스에 포함된 메소드를 구현하도록 강제하는 것

추상메소드보다 추상화의 정도가 더 높다

  • 키워드 : interface , implements

인터페이스의 특징

  • 인터페이스끼리 상속이 가능하다.
  • 인터페이스의 멤버는 public이어야 한다.
  • 구체적인 로직을 가진 메소드를 인터페이스에 포함할 수 없다.
package pr01;
interface Calculatable{
    public int sum();
    public int avg();    
    public static final int ABC = 123; // 모든 멤버 변수는 public static final 이어야 함   
    public abstract void run();  // 메소드는 추상 메소드 이어야 함    
    public default void setState(boolean state){// 디폴트 메소드는 실행 내용까지 작성이 가능함
        if(state){
            System.out.println("현재 상태는 정상입니다");
        }else{
            System.out.println("현재 상태는 비정상입니다");
        }
    }  
    public static void change(){  // 정적 메소드
        System.out.println("상태를 변경합니다.");
    }
}

class CalculDummy implements Calculatable{
    @Override
    public int sum() {
        return 60;
    }
    @Override
    public int avg() {
        return 30;
    }

    @Override
    public void run() {

    }

    @Override
    public void setState(boolean state) {

    }
}
public class test {
    public static void main(String[] args) {
        CalculDummy c1 = new CalculDummy();
        c1.avg();
    }
}
package pr01;
interface i1{
    public void x();
}
interface i2{
    public void z();
}
interface i3 extends i2{
    public void y();
}
class A implements i1,i2{
    @Override
    public void x() {
        System.out.println("인터페이스 i1의 X 입니다");
    }

    @Override
    public void z() {
        System.out.println("인터페이스 i2의 Z 입니다");
    }
}

class B implements i3{
    @Override
    public void y() {
        System.out.println("인터페이스 i3의 Y 입니다");
    }

    @Override
    public void z() {
        System.out.println("인터페이스 i3의 Z 입니다");

    }
}
public class test {
    public static void main(String[] args) {

    }
}

profile
김돌돌입니다

0개의 댓글