스마트 인재개발원/Java
2021-04-28 자바 interface 구현해보기
앨런튜링_
2021. 4. 27. 16:49
public class Acher implements Skill {
@Override
public void attack() {
// TODO Auto-generated method stub
System.out.println("화살 쏘기");
}
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("화살 쏘면 달리기");
}
//상속을 물려 받을때 extends
//인터페이스를 구현할 때 implements
}
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Acher a = new Acher();
a.attack();
a.run();
System.out.println();
Warrior w = new Warrior();
System.out.println("전사 캐릭터 서버 : " + w.sever);
w.attack();
w.run();
w.skin();
}
}
public class Warrior implements Skill, Skin {
public void attack() {
System.out.println("검 휘두르기..!!");
}
public void run() {
System.out.println("말을 타고 달려가기");
}
@Override
public void skin() {
System.out.println("300 스파르타 전사느낌!");
}
}
public interface Skin {
public abstract void skin();
}
public interface Skill {
//Interface는 클래스가 아니다!
//new 라는 키워드를 사용해서 객체생성할 수 없다.
//인터페이스 내의 변수들은 모두 상수로 지정된다.
//final키워드를 생략할 수 있다.
public final String sever = "스카니아";
public abstract void attack();
//abstrack 키워드가 생략되어도 자동적으로 추상 메소드로 인지한다.
//추상화와 인터페이스의 공통점
//1.선언만 있고 구현은 없는 기능
//2.new라는 키워드로 객체생성 x
//3.상속을 받거나 구현이 된 자식들의 한해서는 객체 생성이 가능하다.
//추상화와 인터페이스의 차이점!
// 추상클래스: 동일한 부모를 가지는 클래스를 묶어 상속을 받아 기능을 더 확장하는 것
// 인터페이스 : 구현 객체가 같은 동작을 한다는 것을 보장하기 위한 목적
//2.추상클래스의 경우 단일 상속가능 , 인터페이스 경우 다중으로 구현(상속)이 가능하다.
// 인터페이스 경우 다중으로 구현(상속/implements)이 가능하다.
public abstract void run();
}