본문 바로가기
java

인터페이스

by improve 2024. 1. 25.
package org.example;


interface Printable {

    public void print(String doc);
    default  public void doA(){
        System.out.println("doA 메서드 입니다.");
    }
}

interface CMYKprintable extends Printable{
    public void printCMYK(String doc);
}
class Sprint implements Printable{
    @Override
    public void print(String doc) {
        System.out.println("S print 출력");
        System.out.println(doc);
    }
}

class Lprint implements Printable{
    @Override
    public void print(String doc) {
        System.out.println("L print 출력");
        System.out.println(doc);
    }
}

class PRN909 implements  CMYKprintable{

    @Override
    public void print(String doc) {
        System.out.println("S print  흑백출력");
        System.out.println(doc);
    }

    @Override
    public void printCMYK(String doc) {
        System.out.println("S print 컬러 출력");
        System.out.println(doc);
    }
}
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
    public static void main(String[] args) {
        String doc = "REPORT";

        Sprint sp = new Sprint();

         sp.print(doc);
         Lprint lp = new Lprint();
         lp.print(doc);

         Printable p1 = (d) -> {
             System.out.println("람다");
         };
        p1.print(doc);

        PRN909 prn909 = new PRN909();
        prn909.print("흑백출력");
        prn909.printCMYK("컬러 출력하자");

    }
}

인터페이스의 상속 개념과 디폴트 를 사용방법을 해보았습니다.

 

stastic 매서드를 사용할수도 있다.

package org.example;

interface A{
    public void doA();

    public  void doAA();
    default  public  void doB(){
        System.out.println("A default");
    }
    static public  void doC(){
        System.out.println("static");
    }
}
public class Main2 {
    public static void main(String[] args) {
        A.doC();
        A a = new A() {
            @Override
            public void doA() {
                System.out.println("A doA()");
            }

            @Override
            public void doAA() {

            }
        };
        a.doA();
        a.doB();

//        A a1 = ()->{
//            System.out.println("람다");
//        };
//        a1.doA();
//        a1.doB();
    }
}

 

 

 

 

 

추상메서드는 2개이상 들어갈수 없다.

 

 

 

 

 

 

 

 

'java' 카테고리의 다른 글

제네릭의 사용이유  (1) 2024.01.29
예외처리  (0) 2024.01.25
상속클래스의 매소드 오버로드  (0) 2024.01.23
상속클래스 의 오버로딩  (0) 2024.01.23
상속 클래스  (0) 2024.01.22