java接口
[编辑本段]
什么是接口
Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实 现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
接口的两种含义:一,Java接口,Java语言中存在的结构,有特定的语法 和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。
在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返 回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置 换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。
接口继承和实现继承的规则不同,一个类只有一个直接父类,但可以实现多个接口。
Java接口本身没有任何实现,因为Java接口不涉及
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
象,而只描述public行为,所以 Java接口比Java抽象类更抽象化。
Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,Java接口可以有 public,静态的和final属性。
接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色 相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的 共同之处。 [编辑本段]
为什么使用接口
两个类中的两个类似的功能,调用他们的类动态的决定一种实现,那他们提供一个抽象父类,子类分 别实现父类所定义的方法。
问题的出现:Java是一种单继承的语言,一般情况下,哪个具体类可能已经有了一个超类,解决 是给它的父类加父类,或者给它父类的父类加父类,只到移动到类等级结构的最顶端。这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有 类的修改。
接口是可插入性的保证。
在一个等级结构中的任何一个类都可以实现一个接口,这个接口会影响到此类的所有子类,但不会影 响到此类的任何超类。此类将不得不实现这个接口所规定的方法,而其子类可以从此类自动继承这些方法,当然也可以选择置换掉所有的这些方法,或者其中的某一 些方法,这时候,这些子类具有了可插入性(并且可以用这个接口类型装载,传递实现了他的所有子类)。
我们关心的不是那一个具体的类,而是这个类是否实现了我们需要的接口。
接口提供了关联以及方法调用上的可插入性,软件系统的规模越大,生命周
统的灵活性和可扩展性,可插入性方面得到保证。期越长,接口使得软件系
类型
使用Java接口将软件单位与内部和外部耦合起来。使用Java接口不是具体的类进行变量的类 型声明,方法的返还类型声明,参量的类型声明,以及数据类型的转换。
在理想的情况下,一个具体的Java类应当只实现Java接口和抽象Java类中声明的方法, 而不应当给多余方法。
类型等级结构
(以及抽象类)一般用来作为一个类型的等级结构的起点。 Java接口
如果一个类已经有了一个主要的超类型,那么通过实现一个接口,这个类可以拥有另一个次要的超类 型,这种次要的超类型叫做混合类型。
[编辑本段]
Java接口常用方法
单方法接口
以下是引用片段:
public interface Actionlistener{
public abstract void actionPerformed(ActionEvent event);
}
仅且只有一个方法,只有实现了这个接口(重写这个接口中的唯一一个方法),你才有资格去事件监 听器列表里注册(参数为Actionlistener类型),当事件源变动时,自动调用这个唯一的actionPerformed方法.
标识
采样口标识规范化 下载危险废物标识 下载医疗器械外包装标识图下载科目一标识图大全免费下载产品包装标识下载
接口
是没有任何方法和属性的接口。标识接口不对实现它的类有任何语意上的要求,它仅仅表明了实现它 的类属于一个特定的类型(传递)。
不推荐过多的使用标识接口。
常量接口
用Java接口来声明一些常量,然后由实现这个接口的类使用这些常量(以前在做画板的时候这么 干过)。建议不要模仿这种常量接口的做法。
ava接口问题
悬赏分:30 - 解决时间:2008-8-6 22:13 一直困惑很久的问题
interface A
class B implement A
B实现A接口 假如A中有方法C
B要重写A的所有方法(重写C)
那为什么不直接在B中定义一个方法使得其与C方法有同样的功能
如果这样可行的话
那B实现A接口不就多此一举了吗,
提问者: zhaozhaozhaoku - 一级 最佳
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
接口是类的模版,很多类都可以实现这个接口,这时实现接口的类都有了接口中的方法,但是各个方法的结果不同
我前段时间写的你看看:
接口(interface)是抽象类的变体。他是一个高度的抽象类,在接口中,所有方法都是以public形式存在的抽象方法.方法只能包括方法名,参数列表,返回值类型.但是没有方法主体,只提供了形势而未提供任何实现.
因此接口可以看做是类的一个高度抽象的模板.一个接口表示: “所有实现了该特定接口的类看起来都像这样.”因此任何使用某特定接口的代码都知道可以调用该接口的那些方法,而且仅需要知道这些就可以.
接口的实现:一旦接口被定义一个或多个类可以实现该接口,接口的实现用implements关键字代替extends关键字.
具体示例如下:
1. 创建一个文件名为vacationInterface.java文件,定义一个接口vacationInterface
package vacationInterface;
public interface vacationInterface {
public void getVaction();
}
2. 创建一个文件名为TestInterface.java文件,实现了vacationInterface接口.
import vacationInterface.vacationInterface;
/**
*人事部类,实现了vacationInterface接口
*/
class personnel implements vacationInterface {
//部门名称属性
private String personnelName;
//无参构造
public personnel(){
}
//带参构造
public personnel(String personnelName){
this.personnelName=personnelName;
}
//实现了vacationInterface接口中的getVaction()放假方法,人事部放假三天
public void getVaction(){
System.out.println(personnelName+"放假三天!");
}
}
/**
*金融部类,实现了vacationInterface接口
*/
class financial implements vacationInterface {
//部门名称属性
private String financialName;
//无参构造
public financial(){
}
//参数构造方法
public financial(String financialName){
this.financialName=financialName;
}
//实现了vacationInterface接口中的getVaction()放假方法,金融部放假两
天
public void getVaction(){
System.out.println(financialName+"放假两天!");
}
}
//测试类
public class TestInterface{
public static void main(String[] s){
//抽象父类引用
vacationInterface V=null;
//抽象父类引用指向人事部子类对象
V=new personnel("人事部");
//输出人事部放假方法信息
V.getVaction();
//抽象父类引用指向金融部子类对象
V=new financial("金融部");
//输出金融部放假方法信息
V.getVaction();
}
}
输出结果:
---------------------------------------------------------------------
---
人事部放假三天
金融部放假两天
---------------------------------------------------------------------
---
他只能包含public或默认类型的抽象方1. 接口可以看作是一个高度抽象的类,
法,在声明方法时即使不加public,编译器也默认为public,接口中没有属性,只
,即使声明字段时不加public static 能有public static final类型的字段
final,该字段也默认为public static final类型的.
2. 接口允许多重继承并且接口之间也可以存在多重继承关系,但是接口只能继承自接口不能继承类,继承关键字extends而不是implements。
3. 如果一个类实现了一个接口那么他必须实现接口中的全部方法,否则该类必须声明为抽象类.
4. 接口不能被实例化,但是接口的引用可以指向子类的实例.
接口(interface)是抽象方法和常量值的定义的集合。
从本质上讲,接口是一种特殊的车抽象类,这种抽象类只包含常量和方法的定义,而没有 变量和方法的实现。
特性:
1.接口可以多重实现;
2.接口中声明的属性默认为public static final的,也只能 是public static final的;
3.接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public的;
4. 接口可以继承其它的接口,并添加新的属性和抽象方法。 5.多个无关的类可以实现同一个接口;
6.一个类可以实现多个无关的接口;
7. 与继承关系类似。接口与实现类之间存在多态性。
实例:
程序代码
interface Singer
{
public void sing() ;
public void sleep() ; }
interface Painter
{
public void paint() ;
public void eat() ; }
class Student implements Singer {
private String name ;
Student(String name) {
this.name = name ;
}
public String getName() {
return this.name ;
}
public void study() {
System.out.println("studying") ;
}
public void sing() {
System.out.println("student is singing") ;
}
public void sleep() {
System.out.println("student is sleeping") ;
}
}
class Teacher implements Singer,Painter
{
private String name ;
Teacher(String name) {
this.name = name ;
}
public String getName() {
return this.name ;
}
public void teach() {
System.out.println("teaching") ;
}
public void sing() {
System.out.println("teacher is singing") ;
}
public void sleep() {
System.out.println("teacher is sleeping") ;
}
public void paint() {
System.out.println("teacher is painting") ;
}
public void eat() {
System.out.println("teacher is eating") ;
}
}
public class TestInterface
{
public static void main(String args[]) {
Singer s1 = new Student("mgc") ;
s1.sing() ;
s1.sleep() ;
Singer s2 = new Teacher("magci") ;
s2.sing() ;
s2.sleep() ;
Painter p1 = (Painter) s2 ;
p1.paint() ;
p1.eat() ;
}
}