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("关闭按钮"); }; }