java
인터페이스
improve
2024. 1. 25. 10:54
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개이상 들어갈수 없다.