我是靠谱客的博主 可靠大米,最近开发中收集的这篇文章主要介绍对于Java中interface(接口)的理解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

对于Java中interface(接口)的理解

java中的interface

​ 初学java时,对java中的接口的具体作用总是不太理解。

​ 接下来结合个人认识以及书上关于接口的说明谈一谈对接口的理解。

首先来看一看书上对于接口的描述:

​ 1.接口主要用来描述类具有什么功能,而并不给出每个功能的而具体实现。

​ 2.一个类可以实现一个或多个接口。

​ 3.接口中的所有方法自动的属于public。因此,在接口中声明方法时,不必提供关键字public。如:

public interface Comparable
{
int compareTo(Object other);
//该方法的前面未加public
}

​ 4.在接口实现时必须把方法声明为public。否则,编译器将认为这个方法的访问属性是包可见性,之后编译器会试图提供更严格的访问权限的警告信

public int compareTo(Object otherObjiect)
{
//具体实现代码
}

​ 5.接口不能实例化,即不能用new运算符实例化一个接口。但接口变量可以引用实现了接口的类的对象。也可以把实现了接口的类的对象强制转换为接口的对象。

如:

class Employee implements Comparable
{
//具体实现代码
}
//则接口变量可以引用实现了接口的类的对象
Comparable A=new Employee();
//把实现了接口的类的对象强制转换为接口的对象。
Employee B=new Employee();
Comparable A=(Employee) B;

​ 6.可以把接口看做是没有实例域的抽象类。更进一步的讲:接口带来了类似于c++的多重继承的优点,而避免了多重继承所带来的复杂性和低效性的缺点。

如何理解接口:

​ 就如同上面第一条所说的:接口主要用来描述类具有什么功能。

​ 也就是说看到一个类实现了什么样的接口,那么我们就能大概知道这个类具有什么样的功能。

​ 比如:

class Employee implements Clonable,Comparable

Employee类实现了Clonable,Comparable这两个接口,那么就知道了这个类可比较和可克隆。

java中只能继承一个父类,很多时候父类所具有的方法不能满足子类的需求,比如Employee类继承自抽象的People类,People类可能具有吃、住、行等方法。而Employee类可能还需要定义关于如何工作的work()方法。

有人可能要问,为什么不在Employee类中把克隆、比较直接以类似于实现work()方法一样来定义呢?

比如,直接在Employee类中定义clone()方法和compare()方法。

对此,我的理解是(同时也参考了另外一篇文章的作者的理解):接口主要用来描述类具有什么功能。对于那些普遍存在于类中的方法,如对象间的可比较方法、对象的直接克隆方法,当我们看到这个类定义了这些接口的时候,也就知道了这个类具有了这些功能。这也正对应了书上说的那句话:接口主要用来描述类具有什么功能

abstract class People
{
//具体实现
public void eat(){xxx;}
public void live(){xxx;}
public void run(){xxx;}
}
class Employee extends People
implements Clonable,Comparable
{
//具体实现
@override
public void eat(){xxx;}
@override
public void live(){xxx;}
@override
public void run(){xxx;}
public void work(){xxx;}
//Clonable接口的方法实现
@override
public int compareTo(Object other){xxx;}
//Clonable接口的方法实现
@override
public Employee clone(){xxx;}
}

参考:https://blog.csdn.net/whandwho/article/details/80247521

最后

以上就是可靠大米为你收集整理的对于Java中interface(接口)的理解的全部内容,希望文章能够帮你解决对于Java中interface(接口)的理解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部