zoukankan      html  css  js  c++  java
  • 抽象类

    定义:

      抽象类和抽象方法必须要用abstract修饰

    抽象类的特点

      1.抽象类和抽象方法必须用abstract关键字修饰

      2.抽象类中不一定有抽象方法,但有抽象方法的类必须是抽象类

      3.抽象类不能实例化、因为它不是具体的。

      4.抽象类有构造方法,但不能实例化,构造方法有何用?

        用于子类访问父类数据的初始化

      5.抽象的子类

        抽象类的子类如果不想重写抽象方法,该子类是一个抽象类

        如果重写所有的抽象方法,子类是个具体类

    抽象类的成员特点:

        成员变量:可以是变量 也可以是常量

        构造方法:有,用于子类访问父类数据的初始化

        成员方法:既可以抽象 也可非抽象,抽象方法是强制要求子类做的事情,非抽象方法时子类继承的事情,提高代码复用性。

    几个问题:

    一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?

      可以,不让创建对象

    abstract不能和哪些关键字共存

      private ::因为一个abstract方法需要被重写,所以不能修饰为private;

      final:因为一个abstract方法需要被重写。被final修饰的方法是不能被重写的,所以不能同final共存;

      static :因为一个abstract方法没有方法体。静态方法需要对方法体执行内容分配空间,所以不能同static共存;

          毕老师说如果static可以修饰抽象方法,那么连对象都省了,直接类名调用就可以了。
                    可是抽象方法运行没意义。

      synchronized: 是同步的,然而同步需要具体的操作才能同步,但, abstract是只有声明没有实现的(即,使用synchronized关键字的是需要有具体的实现同步的操作的,但是使用abstract是只有声明而没有实现的,这样就产生了冲突)

     native:他们本身的定义就是冲突的,native声明的方法是移交本地操作系统实现的,而abstract是移交子类对象实现的,同时修饰的话,导致不知道谁实现声明的方法
  • 相关阅读:
    Reactor Cooling(无源汇有上下界网络流)
    费用流——消圈算法
    中间数(二分)+单调队列
    使用ServerSocket建立聊天服务器(二)
    使用ServerSocket建立聊天服务器(一)
    ServerSocket的建立和使用
    Socket介绍
    使用HttpClient进行Post通信
    使用HttpClient进行Get通信
    使用Post进行Http通信
  • 原文地址:https://www.cnblogs.com/jiangjianzhu/p/5773343.html
Copyright © 2011-2022 走看看