package AbstractClassAndInterface; /** * * @author 锋客 * 内容: * 1.抽象类的定义与创建 * 2.抽象类中的方法:抽象方法,普通方法;但是,抽象方法只能是protected和public修饰 * 当抽象方法没有修饰时,采用public * 3.抽象类中的属性或者是变量:可以使任意范围 * 4.抽象类不能用于创建对象 * */ //abstract修饰的类,为抽象类 public abstract class AbstractClass { private String a="private"; public String b="public"; protected String c="protected"; String d="null"; final String e="final"; static String f="static"; //抽象类的方法问题 //抽象方法不能实现 public abstract void setPublicMethod(); //如果为private,则不能被子类继承,子类便无法实现该方法 //private abstract void setPrivateMethod(); //protected可以修饰 protected abstract void setprotectedMethod(); //默认情况下是public abstract void setNoMethod(); //也可以使用非抽象的方法 public void setNotAbstractMethod(){ } } //Test1继承抽象类AbstractClass,必须实现其所有的抽象方法; class Test1 extends AbstractClass{ @Override public void setPublicMethod() { // TODO Auto-generated method stub } @Override protected void setprotectedMethod() { // TODO Auto-generated method stub } @Override void setNoMethod() { // TODO Auto-generated method stub } } //如果只是实现父类(抽象类)的部分抽象方法,子类也必须写成抽象类 abstract class Test2 extends AbstractClass{ @Override public void setPublicMethod() { // TODO Auto-generated method stub } @Override protected void setprotectedMethod() { // TODO Auto-generated method stub } } class Test{ public static void main(String[] args) { //不能创建对象 //AbstractClass abstractClass=new AbstractClass(); //但可以这样使用: AbstractClass abstractClass=new AbstractClass() { @Override protected void setprotectedMethod() { // TODO Auto-generated method stub } @Override public void setPublicMethod() { // TODO Auto-generated method stub } @Override void setNoMethod() { // TODO Auto-generated method stub } }; } }