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() {}
    }

  • 相关阅读:
    删除CSDN上传图片水印
    Win10任务栏中隐藏/恢复日期显示
    使用idea和gradle编译spring5源码
    错误:找不到或无法加载主类
    判断字符串是否为数字
    mysql根据json数据过滤
    mysql当不存在时插入
    org.apache.xerces.parsers.SAXParser
    mybatis mapper判断if条件写法
    《Java面向对象编程》
  • 原文地址:https://www.cnblogs.com/justdoitba/p/7228955.html
Copyright © 2011-2022 走看看