[IT]/java
java.Interface
givemebro
2021. 3. 4. 15:46
반응형

interface
약속 or 계약
구현한 측과 사용하는 측과의 약속 -> 표준화
> interface는 다중 상속의 장점을 채택
> 다중 상속의 장점은 다양한 계층 구조 형성을 통한 다형성 적용에 있음
> 즉 interface는 다양한 계층 구조 형성을 가능하게 함
> 단, 일반 상속에서 지원하는 멤버를 물려 줄수는 없음
>interface끼리는 상속이 가능(abstract method 상속)
>일반적으로 인터페이스는 static final 상수와 abstract method를 정의함
public interface Flyer{
String ID="JAVA"; // public static final로 자동 인식
public void fly(); // abstract method로 자동 인식
}
package step5;
interface Flyer {
String ID="javaking";
public void fly();// abstract method 인식
}
class Animal{
}
class Bird extends Animal implements Flyer {
@Override
public void fly() {
// TODO Auto-generated method stub
System.out.println("새가 날다");
}
}
class Airplane implements Flyer {
@Override
public void fly() {
// TODO Auto-generated method stub
System.out.println("비행기가 날다");
}
}
interface Fighter{
public void fight();
}
// interface는 다양한 계층구조 형성이 가능
class SuperMan extends Animal implements Flyer, Fighter{
@Override
public void fight() {
// TODO Auto-generated method stub
System.out.println("수퍼맨이 악당과 싸우다");
}
@Override
public void fly() {
// TODO Auto-generated method stub
System.out.println("수퍼맨이 날다");
}
}
public class TestInterface1 {
public static void main(String[] args) {
Flyer f1 = new Bird();
Flyer f2 = new Airplane();
f1.fly();
f2.fly();
}
}
package step8;
// interface끼리는 상속이 가능
interface A {
public void a();
}
interface B extends A {// A 인터페이스의 abstract method를 상속
public void b();
}
class TestImpl implements B {// B interface를 implements하는 class a(), b() abstract method를 모두 구현해야함
@Override
public void a() {
// TODO Auto-generated method stub
}
@Override
public void b() {
// TODO Auto-generated method stub
}
}
public class TestInterface4 {
}
반응형