栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

18.Java之接口(什么是接口,接口的注意事项和细节,实现接口与继承类的比较,接口与抽象类的比较)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

18.Java之接口(什么是接口,接口的注意事项和细节,实现接口与继承类的比较,接口与抽象类的比较)

18.1.基本介绍

接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。

18.2.语法

(public 或者 默认) interface 接口名 {
属性
方法
}

1.在 jdk7.0 前,接口里的所有方法都没有方法体,即都是抽象方法
2.在 jdk8.0 后,接口可以有静态方法,默认方法,也就是接口中可以有方法的具体实现

class 类名 implements 接口 {
自己属性;
自己方法;
必须实现的接口的抽象方法
}

18.3.接口的注意事项和细节
  1. 接口不能被实例化
  2. 接口中所有的方法是 public 方法,接口中抽象方法,可以不用 abstract 修饰
    例子:void cry(); 实际上是 public abstract void cry();
  3. 一个普通类实现接口,就必须将该接口的所有方法都实现
  4. 抽象类实现接口,可以不用实现接口的方法
  5. 一个类同时可以实现多个接口
  6. 接口中的属性,只能是 final,而且是 public static final 修饰符。
    例子:int a = 1; 实际上是 public static final int a = 1;(必须初始化)
  7. 接口中属性的访问形式:接口名 . 属性名
  8. 接口不能继承其它的类,但是可以继承多个别的接口
    例子:interface A extends B,C {}
  9. 接口的修饰符,只能是 public 和默认,这点和类的修饰符是一样的
18.4.实现接口与继承类的比较
  • 接口和继承解决的问题不同
    继承的价值主要在于:解决代码的复用性和可维护性
    接口的价值主要在于:设计,设计好各种规范(方法),让其它类去实现这些方法
  • 接口比继承更加灵活
    继承是满足 is - a 的关系,而接口只需满足 like - a 的关系
  • 接口在一定程度上实现代码解耦 [即:接口规范性 + 动态绑定机制]
18.5.接口与抽象类的比较
抽象类 abstract接口 interface
定义不能实例化对象的类。通过abstract class来定义抽象类。抽象类必须被继承,才能被使用。一个类通过extends关键字来继承抽象类。接口不是类,是抽象方法的集合。通过Interface来声明接口。一个类通过implements关键字来实现接口中的抽象方法。
作用is-a关系 是什么like-a 能做什么
描述描述对象的属性和方法,关注的是事物本身的抽象声明类要实现的方法,关注的是操作行为的规范
成员方法抽象类的方法有方法体,可以实现方法的具体功能接口中只有方法的声明,没有方法体(接口中的方法默认public abstract类型)
成员变量抽象类的成员变量可以是各种类型接口中成员变量只能是public static final类型(公共静态常量,必须初始化)
static修饰符抽象类可以有静态代码块和静态方法接口中没有静态代码块,静态方法看JDK版本
继承关系一个类只能继承一个抽象类一个类可以实现多个接口,接口可以继承多个别的接口
优缺点优点:实现公共特性的提取,使具体类可以从抽象类自动得到缺省实现,复用性强,简化代码 缺点:单继承,使子类的功能的扩展性大打折扣优点:一个类可以实现多个接口,接口可以使这个类不仅具有主类型的行为,而且具有其他的次要行为,比如 HashMap主要类型是Map,而Cloneable接口使它具有一个次要类型,这个类型说明它可以安全的克隆
使用建议用于给子类提供一个抽象的描述,用作主要类型的说明用于给子类提供多个功能的补充,用作次要类型的说明

相同点:均不可实例化,均需要子类 继承/实现 对应的抽象方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/582852.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号