抽象类的实现与继承
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
}
};
}
}