zoukankan      html  css  js  c++  java
  • 接口和抽象类

    抽象类(abstract class):

    Java语法规定,包含抽象方法 的类就是抽象类。

    注意事项:

    1. 抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。
      理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义。


    2. 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。
      理解:子类的构造方法中,有默认的super(),需要访问父类构造方法。

    3. 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
      理解:未包含抽象方法的抽象类,目的就是不想让调用者创建该类对象,通常用于某些特殊的类结构设 计。


    4. 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。

     

    接口(interface):

    接口是Java语言中的一种引用数据类型,是方法的集合。如果说类的内部封装了成员变量,构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法、默认方法和静态方法(JDK8)、私有方法(JDK9)。

    接口在编译时也会编译成.class文件

    接口中的几种方法

     1 public Interface MyInterface{
     2     //抽象方法:使用 abstract 关键字修饰,可以省略,没有方法体
     3     public abstract void methodA();
     4     //默认方法:使用 default 修饰,不可省略,供子类调用或者子类重写。 
     5     public default void methodB(){
     6     //方法体
     7     }
     8     //静态方法:使用 static 修饰,供接口直接调用。
     9     public static void methodC(){
    10     //方法体
    11     }
    12     //私有方法:使用 private 修饰,供接口中的默认方法或者静态方法调用。
    13     private void methonD();{
    14     //方法体
    15     }
    16 }

    接口中的注意事项:

    1、当一个类,既继承一个父类,又实现若干个接口时,父类中的成员方法与接口中的默认方法重名,子类就近选择执 行父类的成员方法。

    2、一个接口能继承另一个或者多个接口,这和类之间的继承比较相似。接口的继承使用 extends 关键字,子接口继 承父接口的方法。如果父接口中的默认方法有重名的,那么子接口需要重写一次。

    3、接口中,无法定义成员变量,但是可以定义常量,其值不可以改变,默认使用public static final修饰。 接口中,没有构造方法,不能创建对象。 接口中,没有静态代码块。 

     

  • 相关阅读:
    poj 2488 DFS
    畅通工程 并查集模版
    KMP 模板
    poj 1426 DFS
    poj 2528 线段数
    poj 3468 线段数 修改区间(点)
    CVPR2012文章阅读(2)A Unified Approach to Salient Object Detection via Low Rank Matrix Recovery
    如何制定目标
    Saliency Map 最新综述
    计算机视觉模式识别重要会议杂志
  • 原文地址:https://www.cnblogs.com/BearBird/p/12046435.html
Copyright © 2011-2022 走看看