public abstract String getName(); // 추상 메서드
public abstract String fail() { return "fail"; } // 추상 메서드 X
abstract 키워드와 함께 원형만 선언하고, 내부를 구현하지 않은 메서드
public abstract class Member {
	public abstract void logic();
}
public class SpecialMember extends Member {
	@Override
	public void logic() { /* 구현 */ }
}
abstract 키워드로 선언된 클래스abstract로 선언된 클래스extends 키워드로 상속받는다.public interface IMemberList {
	int MAX_COUNT = 100; // 상수 필드 public static final 이 생략되었다.
  void push(); // 추상 메서드 abstract public void 가 생략되었다.
}
public class SpecialMemberList implements IMemberList {
	public void push() { /* 구현 */ }
}
interface 키워드로 선언.abstract public 속성이 default로 생략 가능하다.public static final 속성이 default로 생략 가능하다.extends 키워드를 사용하여 상속받는다.implements 키워드를 사용하여 상속받는다.interface DefaultInterface {
  void abstractMethod();
  default void defaultMethod(){ // 디폴트 메소드 //오버라이드해도되고 안해도됨
    System.out.println("Default method"); // 구현을 해주어야함
  }
}
default 메소드를 구현할 수 있다.interface IHuman {
	default void call() { System.out.println("우어어"); }
}
class Parents {
	void call() { System.out.println("부모가 부른다"); }
}
class Child extends Parents implements IHuman {} 
// Child c = new Child();
// c.call(); // 부모가 부른다