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

    来解释下抽象这两个字的意思。

    抽象:笼统、模糊、看不懂、不具体等意思
    那抽象类有些什么特点呢?
    1
    、方法只有声明没有实现时,该方法就是抽象方法,需要被abstract关键字修饰,抽象方法必须定义在抽象类中,该类也必须被abstract关键字修饰。
    2
    、抽象类不可以被实例化,因为调用抽象方法没意义。
    3
    、抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以实例化,否则,这个子类还是抽象类。


    既然我们前面说到抽象类不能被实例化。那么抽象类有构造函数么?答案是有的,这又是为什么呢?因为抽象类是必须被继承的,
    而抽象类的构造函数就是用来给子类对象进行初始化。


    还有就是抽象类可以不定义抽象方法吗?可以的,但是这种抽象类是很少见的,目的就是不让该类创建对象,
    但是AWT的适配器对象就是这种抽象类,通常这种类中的方法有方法体,但是方法中没有内容。
    abstract class Dome{
    void show(){}
    }


    根据抽象类的这些特点,那么我们来说说抽象abstract关键字不可以和哪些关键字共存呢?
    我们已经知道了,抽象类是必须被其他类继承的,类中的抽象方法也是必须被子类重写。
    那么abstract关键字和private关键字是不能共存的,因为抽象方法是要被子类中的方法覆盖重写,如果用private关键字修饰,而私有化后方法是不能被访问到的。
    还有就是static关键字也不能和abstract关键字共存,因为用static关键字修饰后的方法,就是静态方法,
    不用创建对象,可以直接用类名调用方法,而调用抽象方法就毫无意义了。
    ③abstract
    关键字和constreadonly关键字也不能在一起使用,因为被constreadonly关键字修饰的方法不能被覆盖,而抽象方法就是要被其子类中的方法覆盖。


    前面了解那么多,那么抽象类和我们平时见的那些一般类有什么异同点呢?
    相同点:抽象类和一般类都是用来描述事物的,都在内部定义了成员。
    不同点:一般类有足够的信息描述事物,而抽象类描述事物的信息就有可能不足,
    一般类中不能定义抽象方法,只能定义非抽象方法,而抽象类中可以定义抽象方法,同时也可以定义非抽象方法。
    一般类可以被实例化,抽象类不可以被实例化。


    抽象类一定是个父类吗?
    是的,因为抽象类需要子类覆盖其抽象方法后才可以对其子类进行初始化。 

     

     

  • 相关阅读:
    关于返回上一页功能
    Mybatis Update statement Date null
    SQLite reset password
    Bootstrap Validator使用特性,动态(Dynamic)添加的input的验证问题
    Eclipse使用Maven2的一次环境清理记录
    Server Tomcat v7.0 Server at localhost failed to start
    PowerShell一例
    Server Tomcat v7.0 Server at libra failed to start
    商标注册英语
    A glance for agile method
  • 原文地址:https://www.cnblogs.com/zhangliang1990/p/3405306.html
Copyright © 2011-2022 走看看