java抽象类

public class TestAbstract {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Button x = new StartButton();
        Button s = new CloseButton();
        
        x.click();
        s.click();
    }
}

/**
 * 抽象类abstract
 * 特点:1.访问权限必须是public或protected,不能为private
 *         2.在方法返回类型前面加上abstract修饰符,告诉java这个是抽象方法
 *         3.抽象方法没有大括号方法体,以小括号结束
 *         4.要有继承关系,注意!!!!抽象类不能被实例化
 */
abstract class Button{
    private String shape = null;
    private String color = null;
    
    public Button() {};  //构造方法
    
    public abstract void click();  //声明抽象方法
}

class StartButton extends Button {
    public StartButton() {};
    
    public void click() {
        System.out.println("由于继承了父类的抽象方法,所以子类必须存在这个方法");
    };
}

class CloseButton extends Button {
    public CloseButton() {};
    
    public void click() {
        System.out.println("关闭按钮");
    };
}
原文地址:https://www.cnblogs.com/xiyangcai/p/8135581.html