抽象类的实现与继承

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

posted on 2015-10-28 00:04  锋客person  阅读(534)  评论(0编辑  收藏  举报