package charactor;
public abstract class Hero {
String name;
float hp;
float armor;
int moveSpeed;
public static void main(String[] args) {
}
// 抽象方法attack
// Hero的子类会被要求实现attack方法
public abstract void attack();
}
子类继承Hero类后,这些子类就必须提供不一样的attack方法实现。
抽象类可以没有抽象方法。虽然没有抽象方法,但是一旦被声明为了抽象类,就不能够直接被实例化
抽象类和接口区别:
1-抽象类只能单继承,接口可以有多个。
2-抽象类是一个类,可以被任意权限修饰符修饰,静态和非静态属性,final和非final属性,可以有抽象方法和非抽象方法;
接口只能被public,final修饰,只能有静态方法,即使没有显示的声明,而且是不可修改的;
抽象类相比与类只会给子类一些东邪,不够纯粹,而接口虽然每个只有一种,但是可以说
接口是最纯粹的抽象类
public class Aromor extends Item {
String name;
int price;
int durability;
public boolean disposable(){
return false;
}
public static void main(String[] args) {
Aromor a=new Aromor();
a.name="复活甲";
System.out.println(a.disposable());
}
}
public class LifePotion extends Item {
public void effect(){
System.out.println("血瓶使用后 可以回血");
}
@Override
public boolean disposable(){
return true;
}
public static void main(String[] args) {
LifePotion lp=new LifePotion();
System.out.println(lp.disposable());
}
}
public abstract class Item {
String name;
int price;
public void buy(){
System.out.println("购买");
}
public abstract boolean disposable();
}