• 抽象类和接口


    抽象类:

    关键字abstract:   一个类如果被abstract修饰那么这个就叫抽象类

                      

             1.abstract修饰的方法,称为抽象的方法

           2.abstract修饰的类,称为抽象类

           3.一个类继承了抽象类,必须要实现抽象类中的抽象方法

             abstract 关键字使用:

                                1.一个方法没有方法体,这个方法必须要用abstract来修饰

                                2.一个类中有抽象方法,这个类必须用abstract来修饰,为抽象的类

                                3.一个非抽象的类,继承了这个抽象类,那么这个非抽象类中必须重写所有的抽象方法

                                4.抽象类中可以有非抽象的方法

                                5.抽象类中可以有构造方法,作用是让子类能够初始化父类中的变量

                                6.抽象类不能创建对象

    原因:如果创建对象,对象就可以调用抽象方法,这样调用抽象方法(没有具体的实现)没有意义

                                7.抽象类中可以没有抽象方法

            

    abstract的使用场景:

    事物存在某种行为,但又不具体,那么可以抽取这种行为,声明一个没有实现的行为,

    这种行为称为抽象的行为,这个时候就需要用到抽象类。

    abstract class Animal  // abstract修饰的类,为抽象类

    {

    abstract public void run(); // 抽象方法时没有主体,没有方法的具体实现

    }

    非抽象类继承了抽象类,必须实现抽象类的所有方法

            

    abstract不能和那些关键字连用:

                  1.不能和private (抽象必须要重写,但是私有的不能重写)

                  2.不能和static使用(static修饰的方法不能被重写,而abstract修饰方法本身没方法体的必须重写)

                  3.不能final一起使用 (final是修饰的方法不能被重写,抽象的是需要重新写的)

    接口:用来添加扩展功能

    Eg..带橡皮擦的铅笔,拥有橡皮擦的功能,又拥有写字的功能,java中又不能出现既集成铅笔又继承橡皮擦,所以引出了借口(解决单继承问题)

    interface关键字

           接口定义模式:

                  用interface关键字来表示接口

                  结构:interface 接口名{};

    Implements关键字

           实现接口中的方法,需要用实现(implements)来完成

           结构:class 类 implements 接口名1,接口名2...

                         {

                         }

    java 中支持多实现,即一个类可以实现多个接口,类如果实现了一个接口,需要将接口中的方法都实现

           作用:  1.用来拓展功能

                     2.让程序解耦

                     3.定义约束

          

           接口使用注意事项:

                  1.接口是一个特殊的类,可以定义属性和方法

                  2.属性默认final修饰,  public static final实际上是一个常量

                  3.方法都是抽象的       abstract public

                  4.接口不能创建对象

                  5.接口没有构造方法

                  6.接口是给类去实现的,非抽象类实现接口时,必须将接口中方法都实现。

  • 相关阅读:
    BZOJ 3668: [Noi2014]起床困难综合症【贪心】
    浅谈错排公式的推导及应用
    Python爬虫笔记(一):爬虫基本入门
    机器理解大数据秘密:聚类算法深度剖析
    想了解概率图模型?你要先理解图论的基本定义与形式
    MATLAB命令大全+注释小结
    【批处理学习笔记】第二十九课:ASCII码
    【批处理学习笔记】第二十八课:声音和控制
    【批处理学习笔记】第二十七课:视窗
    【批处理学习笔记】第二十六课:返回值
  • 原文地址:https://www.cnblogs.com/z-jun/p/6100262.html
Copyright © 2020-2023  润新知