public abstract void 함수명();
추상 메소드를 하나라도 가지려면 class도 추상 클래스여야 한다.
Q : 추상클래스는 어떻게 사용하느냐
A : 상속을 받고 Override
Q2 : 기능이 덜 구현되어 있지 않느냐?
A2 : 추상클래스는 강제 상속이 되기때문에
단독으로 객체를 만들수 없고
그렇기에 자손클래스의 함수를 바로 사용할 수 있다.
abstract class 객체를 만들 수는 있지만
abstract로 구현된 함수는 사용할 수 없다. (사용하고 싶으면 상속)
※(가정) abstract class weapon과 myweapon extends weapon이 있다.
Q :만약 myweapon에 오로지 weapon에서 override한 값 밖에 없다? (즉 추가 기능 없다?)
A : MyWeapon a = new MyWeapon도 가능하지만
Weapon a = new MyWeapon도 가능하며 오히려 이 방향으로 지향하는 편이다.
new 클래스명() { 추가 or override 기능구현 }
생성자 뒤에 임의로 추가하는 클래스를 의미
기존의 abstract로 구현되었던 attack함수를 anonymous class로 구현한다면 별도의 상속 없이도 사용가능한 것을 볼 수 있음