java中接口的理解

  以前我们常说java是一门”面向对象的编程“,而现在我们更多说”面向对象编程“。可见java语言中接口的地位是什么高的。

  一、什么是接口?在软件中接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合,但是没有方法的实现,接口其实上也可以看做是一个特殊的抽象类,但是采用和抽象类完全不同的方法来表示,两者的设计理念也是不同的,抽象类有利于代码复用,接口利于代码的扩展和维护。

  二、接口的作用:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。接口可以让没有继承关系(is a关系)的类也能够有继承的行为。同时接口利用多实现机制有效的解决了java中单继承带来的丰富度不够的问题,让java语言更加丰富,更加简单!

  三、接口的语法:  

  1.接口的定义语法:把定义类的class关键字换成interface关键字,访问修饰符只能是public或默认同包。属性---只能是公共的,静态的,常量属性---就算不写这些修饰符,也会默认为公共静态常量。设计接口更关注的是行为的设计(让没有继承关系的类也能共享行

为),而不是关注属性。
  2.接口中所有的方法都是抽象方法,接口中方法都会自动用public abstract 修饰,即接口中只有全局抽象方法。
  3.接口不能实例化,接口中不能有构造。
  4.接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。
  5.接口的实现类必须实现接口的全部方法,只能是公共的抽象方法----就算不写,也会默认为公共抽象方法。

  6.设计接口的意义在与让不同的类(没有继承关系)共享行为,但各个类又有各自的实现。

  三、接口与抽象类的区别:

  1.抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;
  2.抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
  3.接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
  4.一个类只能继承一个抽象类,而一个类却可以实现多个接口。

  类实现接口,却没有接口实现类的方法(只要有一个方法没有实现则该类就定义为抽象类)。接口的引用可以指向类的对象。但是只能访问到子类对象重写的定义在接口中的方法!接口继承接口可以是多继承接口!

  

时间: 2024-07-30 13:45:16

java中接口的理解的相关文章

畅销书对Java中Iterator的理解误区

声明:本博客为原创博客,未经允许,不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/28110615 最近放假,闲来无事,便翻看以前看过的一些书,竟然发现有些书本(甚至是一些畅销书)对Java中Iterator有很大的误解,比如某畅销书在Collection那一章有这么一句话:"当使用Iterator对集合元素进行迭代时,Iterator并不是把集合元素本身传给了迭代变量,而是把集合元素的值传给了迭代变量,所以修改迭代变量的值对集

Java中接口和抽象类的比较

Java中接口和抽象类的比较-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计使用多态性的基础[[1]].(在面向对象语言中,接口的多种不同的实现方式即为多态.多态性是允许你将父对象设置成为和一个或更多的他的子对象的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自"Delphi4编程技术内幕").简单的说,就是一句话:允许将子类类型的

Java中接口和抽象类的比較

Java中接口和抽象类的比較-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计使用多态性的基础[[1]]. (在面向对象语言中,接口的多种不同的实现方式即为多态. 多态性是同意你将父对象设置成为和一个或很多其它的他的子对象的技术.赋值之后.父对象就能够依据当前赋值给它的子对象的特性以不同的方式运作(摘自"Delphi4编程技术内幕"). 简单的说.就是一句话:同意将

谈谈我对Java中CallBack的理解

谈谈我对Java中CallBack的理解 http://www.cnblogs.com/codingmyworld/archive/2011/07/22/2113514.html CallBack是回调的意思,熟悉Windows编程的人对"回调函数"这四个字一定不会陌生,但是Java程序员对它可能就不太了解了."回调函数"或者"回调方法"是软件设计与开发中一个非常重要的概念,掌握"回调函数"的思想对程序员来说(不管用哪种语言)

Java中接口和抽象类的区别与联系

Java中接口和抽象类的区别与联系 1. 抽象类: (1).概念:抽象类是对一种事物的抽象,即对类抽..抽象类是对整个类整体进行抽象,包括属性.行为.Java抽象类和Java接口一样,都用来声明一个新的类型.并且作为一个类型的等级结构的起点. (2).格式: public abstract class abstractDemo{ /**属性*/ private String name; /**方法*/ public abstract void fun(); } (3).说明: A:抽象类中不一定

沉淀再出发:关于java中的AQS理解

沉淀再出发:关于java中的AQS理解 一.前言 在java中有很多锁结构都继承自AQS(AbstractQueuedSynchronizer)这个抽象类如果我们仔细了解可以发现AQS的作用是非常大的,但是AQS的底层其实也是使用了大量的CAS,因此我们可以看到CAS的重要性了,但是CAS也是有缺陷的,但是在大部分使用的情况下,我们往往忽略了这种缺陷. 二.AQS的认识 2.1.AQS的基本概念 AQS(AbstractQueuedSynchronizer)就是抽象的队列式的同步器,AQS定义了

java中接口中成员的定义

java中的接口的作用是提供编程框架,它作为统一的规范让其他类进行扩展,是java中非常优秀的设计. 这娃用以下代码总结了java中接口可以定义的成员以及它们默认被修饰的关键字: //外部接口的访问修饰符只能是public或默认修饰符 ,并且它的成员只能用public访问修饰符修饰, 接口不能用final修饰 public interface A { //成员变量,默认用public static final 修饰 String name="ahei"; //成员方法,默认用publi

java中接口的定义与实现

1.定义接口 使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,当中接口体由常量定义和方法定义两部分组成.定义接口的基本格式例如以下: [修饰符] interface 接口名 [extends 父接口名列表]{ [public] [static] [final] 常量; [public] [abstract] 方法; } 修饰符:可选,用于指定接口的訪问权限,可选值为public.假设省略则使用默认的訪问权限. 接口名:必选參数,用于指定接口的名称,接口名

java中接口的使用

我们虽然写了两个文件,但是,两个文件中我们都是用了一个包mah. 我们可以在类中调用接口,看下面的例子 这是一个接口 [[email protected] java]# vim Output.java package mah; public interface Output { public static final int MAX_CACHE_LINE = 120; public abstract void out(); public abstract void getData(String