zoukankan      html  css  js  c++  java
  • 大龄屌丝自学笔记Java零基础到菜鸟019

    抽象类,接口,类、接口关系,抽象类与接口的区别

    1、抽象类

    抽象方法:只有方法体的方法,用于定义抽象的、非具体的功能,如 abstract void eat(); 。

    抽象类:abstract class,可以包含抽象方法的类(抽象类不一定包含抽象方法,包含抽象方法的类一定是抽象类),如:abstract class Animal{} 。

    抽象类的特点:抽象类既可以包含抽象方法,也可以包含非抽象方法。

           抽象类有构造函数,但不能被实例化。构造函数用于子类访问父类数据的初始化。

           抽象类的子类是抽象类,该子类不需要重写抽象方法。

           抽象类的子类是非抽象类,该子类必须重写全部抽象方法(实例化)。

     1 abstract class Animal{
     2     public abstract void sleep();
     3 }
     4 
     5 class Cat extends Animal{
     6      public void sleep(){
     7         System.out.println("小猫睡觉");
     8     }
     9 }
    10 
    11 class Fin{
    12     public static void main(String[] args){
    13         Animal ani=new Cat();
    14         ani.sleep();
    15     }
    16 }

    注意事项:抽象类与 private、final 关键字冲突,static 关键字无意义。

    2、接口

    接口:interface,用于定义方法而不实现方法的引用类型(其他的类和接口可以实现接口),如:interface ITrain{} 。

    接口的特点:接口的实现用 implement 关键字,如:class ITrainImpl implement ITrain{} 。

          接口是抽象的不能实例化。通过子类实例化。

          接口的子类可以是抽象类,但是抽象类实现接口无意义。

          接口的子类是非抽象类,该子类必须重写全部抽象方法(实例化)。

          接口中只能包含抽象方法,不能包含非抽象方法,默认修饰符public。

          接口中的变量,默认是常量。

          接口没有构造函数。

    注意事项:类实现接口的本质是:类 extends Object implement 接口{} 。

         Object类,是所有类层次结构的根类,所有类都使用Object类作为超类,是所有对象(包扩数组)都实现这个类的方法。

    3、类、接口关系

    类与类的关系:继承关系,只能单继承,可以多层继承。

    接口与接口的关系:实现关系,可以多实现,可以多层实现。

    类与接口的关系:继承关系,可以多继承,可以多层继承。

    4、抽象类与接口的区别

    成员区别:抽象类,常量、抽象方法、变量、非抽象方法,有构造函数。

         接口,常量、抽象方法,没有构造函数。

    关系区别:抽象类,类只能单继承

         接口,接口可以多继承/实现

    理念区别:抽象类,被继承体现的是抽象出的共性的关系,如:猫(类)是动物(抽象类)。

         接口,被实现的是扩展出的扩展功能,如:猫(类)会卖萌(接口)。

  • 相关阅读:
    Delphi 中的颜色常量及效果图
    WinAPI: waveInGetErrorText 根据错误号得到错误描述
    WinAPI: waveInGetDevCaps 查询输入设备的性能
    动画演示 Delphi 2007 IDE 功能[2] 定义变量
    动画演示 Delphi 2007 IDE 功能[1] 建立工程、添加控件
    Delphi 的绘图功能[15] 再谈文字的高度与宽度: Canvas.TextExtent
    WinAPI: waveInAddBuffer 向波形输入设备发送一个输入缓冲区
    动画演示 Delphi 2007 IDE 功能[3] 修改属性
    颜色转换函数: 从 Delphi 到 Html
    Spider trap Wikipedia, the free encyclopedia
  • 原文地址:https://www.cnblogs.com/liverpool/p/4817417.html
Copyright © 2011-2022 走看看