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

    转载: https://www.cnblogs.com/libinhong/p/10990347.html
    https://blog.csdn.net/cillyb/article/details/81611090

    接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。

    抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。

    人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.

    所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口)。

    1.抽象类 和 接口 都是用来抽象具体对象的. 但是接口的抽象级别最高
    2.抽象类可以有具体的方法 和属性, 接口只能有抽象方法和不可变常量
    3.抽象类主要用来抽象类别,接口主要用来抽象功能.

    接口

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

    接口的定义:

    它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型。

    引用数据类型:数组,类,接口。

    接口中定义抽象方法

    抽象方法:没有方法体的方法,并且使用abstract关键字修饰

    默认修饰符:public abstract 可以省略

    public abstract 返回值类型 方法名(形参);

    接口中定义默认方法--有方法体的方法

    默认方法:使用 default 修饰,不可省略,供子类调用或者子类重写。

    public default 返回值类型 方法名(形参){
        方法体
    }

    接口中静态方法的定义

    静态方法:使用 static 修饰,供接口直接调用。

    public static 返回值类型 方法名(形参){
       方法体
    }

    接口中定义私有方法

    私有方法:使用 private 修饰,供接口中的默认方法或者静态方法调用

    私有非静态方法

    private 返回值类型 方法名(形参){
       方法体
    }

    私有静态方法

    Private static 返回值类型 方法名(形参){
       方法体
    }

    接口和抽象类的特点

    接口就是一种引用数据类型

    接口中只能定义常量和方法(抽象方法,静态方法,默认方法,私有方法)

    接口不能定义成员变量和构造方法

    接口不能创建对象,只能通过其实现类来使用

    接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。

    抽象类里可以没有抽象方法

    抽象方法要被实现,所以不能是静态的,也不能是私有的。

  • 相关阅读:
    JPA条件查询时间区间用LocalDateTime的问题
    Java常用的异常类型
    Android 通用流行框架
    html图标插件
    炫酷科技
    使用zxing生成二维码
    八款常见的Android游戏引擎
    opengl es中不同的绘制方式
    Xml序列化去掉命名空间,去掉申明
    win8 app GridView点击子项布局变更
  • 原文地址:https://www.cnblogs.com/android-zcq/p/13278181.html
Copyright © 2011-2022 走看看