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 |