zoukankan      html  css  js  c++  java
  • 抽象类的实现与继承

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

  • 相关阅读:
    poj1417(带权并查集+背包DP+路径回溯)
    poj1182(带权并查集)
    hdoj3038(带权并查集)
    poj1611(并查集简单应用)
    poj2236(并查集)
    莫队板子,例题
    离散化二维坐标
    P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
    树链剖分板子
    P2486 [SDOI2011]染色 区间合并+树链剖分(加深对线段树的理解)
  • 原文地址:https://www.cnblogs.com/fengke/p/4916078.html
Copyright © 2011-2022 走看看