java语言中的接口概述

接口

接口中的成员修饰符是固定的

1,全局常量:public staticfinal

2,抽象方法:public abstract

接口中的成员都是公共的权限。

类与类之间是继承关系,类与接口之间是实现关系。

接口不可以实例化

只能有实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化。否则,这个子类就是一个抽象类。

调用接口的常量时,接口名,接口的子类名,子类的对象都可以进行调用。

在java中不直接支持多继承,因为会出现调用的不确定性。

所以java将多继承机制进行改良,在java中变成了多实现。

//下面是一个接口实现有问题例子。

interface aa
{
         public void show();
}
interface bb
{
         public int show();
}
class Imp implements aa,bb
{
       	public void show(){}
	public int show(){}//这里会有二义性
}

错误: Imp 不是抽象的,并且未覆盖 bb 中的抽象方法 show()

Imp 中的 show() 无法实现 bb 中的 show();正在尝试使用不兼容的返回类型

一个类在继承另一个类的同时,还可以实现多个接口。接口的出现避免了单继承的局限性。

接口的特点

接口是对外暴露的规则

接口是程序的功能扩展

接口的出现降低耦合性

接口可以用来多实现

类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。

接口与接口之间可以有继承关系,并且可以是多继承关系。

接口和抽象类的异同点

相同点:都是不断向上抽取而来

不同点:

1,抽象类需要被继承,而且只能单继承

接口需要被实现,而且可以多实现

2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法

接口中只能定义抽象方法,必须由子类去实现。

3,抽象类的集成是is  a关系,在定义该体系中的基本共性内容

接口的实现是like  a关系,在定义体系的额外功能。

时间: 2024-10-07 23:21:43

java语言中的接口概述的相关文章

java语言中的多态概述

多态:一个对象相应着不同类型 多态在代码中的体现:父类或接口的引用指向其子类对象. 多态的优点: 提高了代码的扩展性,前期定义的代码能够使用后期的内容. 多态的弊端: 前期定义的内容不能使用后期子类中定义的特有内容. 多态的前提: 1,必须有关系,(继承.实现). 2,要有覆盖. Animal a =new Cat(); 自己主动类型提升,猫对象提升了动物类型.可是特有功能无法訪问.能够限制对特有功能的訪问. 专业讲:向上转型.将子类型隐藏.就不能使用子类的特有方法. 假设还想用详细动物猫的特有

java语言中的继承概述

继承的好处: 1,提高了代码的复用性. 2,让类与类之间产生了关系,给第三个特征多态提供了前提. java中支持单继承,不直接支持多继承,因为多个父类中有相同成员会差生调用的不确定性,但对C++中的多继承机制,进行了改良. 单继承:一个子类只能有一个直接父类. 多继承:一个子类可以有多个直接父类(java中不允许,进行改良-----Java中通过"多实现"进行改良) java支持多层(多重)继承,就会出现继承体系. C继承B,B继承A 当要使用一个继承体系时 1,  查看体系中的顶层类

java语言中的抽象类概述

抽象类 特点: 1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰. 抽象方法必须定义在抽象类中.该类必须也被abstract修饰. 2,抽象类不可以被实例化.因为调用抽象方法没有意义. 3,抽象类必须有其子类覆盖了所有的抽象方法,该子类才可以被实例化.否则这个子类还是抽象类. 1,抽象类有构造函数么? 有,用于给子类对象进行初始化. 2,抽象类可以不定义抽象方法么? 可以.但是很少见.目的是不让该类创建对象.AWT的适配器对象就是这种类. 通常这个类中的方法有方法体,但

Java语言中的----抽象类、接口

day12  Java语言中的抽象类与接口 一.抽象类和接口概述; 在昨天我们学习了Java的继承功能,这个是一个核心知识点,今天我们再继承的基础之上学习一下抽象类和接口这两个知识.什么是抽象类?如何定义一个抽象类?如何使用一个抽象类?这些都是我们需要掌握的. 同时我们还要知道如何来定义一个接口,在开发中定义接口来实现相关的功能是一个很重要的功能.如何来实现接口中的抽象方法,这些在这一节都会说到. 二.抽象类和接口 1.抽象类: 什么是抽象类?包含抽象方法的类就叫做抽象类 .使用abstract

Java语言中反射动态代理接口的解释与演示

Java语言中反射动态代理接口的解释与演示 Java在JDK1.3的时候引入了动态代理机制.可以运用在框架编程与平台编程时候捕获事件.审核数据.日志等功能实现,首先看一下设计模式的UML图解: 当你调用一个接口API时候,实际实现类继承该接口,调用时候经过proxy实现. 在Java中动态代理实现的两个关键接口类与class类分别如下: java.lang.reflect.Proxy java.lang.reflect.InvocationHandler 我们下面就通过InvocationHan

JVM内存管理------JAVA语言的内存管理概述

引言 内存管理一直是JAVA语言自豪与骄傲的资本,它让JAVA程序员基本上可以彻底忽略与内存管理相关的细节,只专注于业务逻辑.不过世界上不存在十全十美的好事,在带来了便利的同时,也因此引入了很多令人抓狂的内存溢出和泄露的问题. 可怕的事情还不只如此,有些使用其它语言开发的程序员,给JAVA程序员扣上了一个"不懂内存"的帽子,这着实有点让人难以接受.毕竟JAVA当中没有malloc和delete.没有析构函数.没有指针,刚开始接触JAVA的程序员们又怎么可能接触内存这一部分呢,更何况有不

Java语言中的定义变量、构造函数

day02 Java语言中的定义类.变量.方法.构造函数 一.概述: 在Java语言中,变量的定义和使用时非常常见和重要的:同时对后续的操作变量奠定基础,在这里定义和使用变量就要使用到我们前一节说到的数据类型了,它们两个就是绑定在一起使用的.我们回顾一下前一节学的数据类型. 学完变量以后就要学会使用变量去定义一些东西,去构造我们需要的一些方法来满足学习的需要.从而引申出了构造这一个词汇.构造就是创造的含义,通过创造一些东西来满足.下面就一一的来看一下. 二.定义"类"(class):

Java语言中的----运算符

day05 Java语言中的----运算符 一.运算符概述: 运算符的使用在每一门开发语言中都会使用到,在不同的语言中也会有不同的使用规则.通过运算符我们可以联想到MySQL数据库中的运算符,这些都是差不多的,可能有些在使用上是不一样的.下面就来看看Java中的运算符. 二.运算符: 1.算术运算符: 主要包含:加.减.乘.除.取余(%).自加(++).自减(--) 2.赋值运算符: 就是等号(=) 3.位运算符: 主要包含:&.|.~.^.<<.>>.>>&g

Java语言中的----条件循环

day06 Java语言中的条件循环 一.条件循环概述: 条件循环对于我们来说一点也不陌生,在程序中使用循环语句是很普片的事儿,所以说你一定得学会循环语句. 二.条件循环 条件循环主要包括两个循环语句,分别是if...else和switch...case语句. 1.if循环结构         if (){                  }else{                  } 2.switch...case循环结构         switch () {     case 1: