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 |
|
} |
}; |
|
|
|
} |
} |