abstract可以修饰方法和类,修饰类是抽象类,修饰方法是抽象方法。
好处:
抽象类为所有子类提供了一个通用模板,子类可以在这个模板基础上进行拓展;
通过抽象类,可以避免子类设计的随意性;
通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用;
抽象方法的好处实现了方法定义与方法实现的分离。
定义:
package com.ws.basic;
abstract class gobj{
public abstract void attack();
}
class tower extends gobj{
@Override
public void attack() {
System.out.println("箭塔攻击范围内所有目标,重甲单位有伤害加成!");
}
}
public class test {
public static void main(String[] args) {
tower t = new tower();
t.attack();
}
}
代码定义了一个抽象方法和一个抽象类,以及抽象方法的实现和调用。
要点:
有抽象方法的类只能定义成抽象类;
抽象类不能实例化,及不能用new 来实例化抽象类;
抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用;
抽象类只能用来继承;
抽象方法必须被子类实现。
抽象类不能实例化,及不能用new 来实例化抽象类;
抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用;
抽象类只能用来继承;
抽象方法必须被子类实现。