zoukankan      html  css  js  c++  java
  • 高级类特性----抽象类(abstract class)

    抽象类(abstract class)


    随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。

    abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法

    抽象方法:只有方法的声明,没有方法的实现。以分号结束
      abstract int abstractMethod1( int a );

    含有抽象方法的类必须被声明为抽象类

    抽象类不能被实例化。抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体

    不能用abstract修饰私有方法,构造方法,静态方法


    抽象类举例

    abstract class A {
      abstract void m1( );
      public void m2( ) {
        System.out.println("A类中定义的m2方法");
      }
    }

    class B extends A {
      void m1( ) {
        System.out.println("B类中定义的m1方法");
      }
    }

    public class Test {
      public static void main( String args[ ] ) {
        A c = new B( );
        c.m1( );
        c.m2( );
      }
    }


    抽象类应用

    抽象类是用来模型化那些父类无法确定全部实现,而是由其子类提供具体实现的对象的类

    public class TestAbstract {

      public static void main(String[] args) {
        E e = new F();
      }
    }

    abstract class E {
      abstract void test();
      private void aa() {}
    }

    class F extends E {

      @Override
      void test() {
      }
      void aa() {}
    }

  • 相关阅读:
    每天一个linux命令(54):sftp命令
    每天一个linux命令(53):wget命令
    每天一个linux命令(52):scp命令
    每天一个linux命令(51):rcp命令
    每天一个linux命令(50):telnet命令
    每天一个linux命令(49):ss命令
    每天一个linux命令(48):netstat命令
    每天一个linux命令(46):ping命令
    Springmvc常见问题
    MP实战系列(十)之SpringMVC集成SpringFox+Swagger2
  • 原文地址:https://www.cnblogs.com/justdoitba/p/7228955.html
Copyright © 2011-2022 走看看