java 房子,Java中的接口

Java

-接口

一、什么是接口

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

如果一个类只由抽象方法和全局常量组成,那么这种情况下不会将其定义为一个抽象类。只会定义为一个接口,所以接口严格的来讲属于一个特殊的类,而这个类里面只有抽象方法和全局常量,就连构造方法也没有。

范例:定义一个接口

interface A{//定义一个接口

public

static final String MSG = "hello";//全局常量

public

abstract void print();//抽象方法

}

二、接口与类相似点:

一个接口可以有多个方法。

1.接口文件保存在

.java 结尾的文件中,文件名使用接口名。

2.接口的字节码文件保存在

.class 结尾的文件中。

3.接口相应的字节码文件必须在与包名称相匹配的目录结构中。

三、接口与类的区别:

1.接口不能用于实例化对象。

2.接口没有构造方法。

3.接口中所有的方法必须是抽象方法。

4.接口不能包含成员变量,除了

static 和 final

变量。

5.接口不是被类继承了,而是要被类实现。

6.接口支持多继承。

四、接口特性

接口中的方法会被隐式的指定为 public

abstract(只能是 public

abstract,其他修饰符都会报错)。

接口中可以含有变量,但是接口中的变量会被隐式的指定为 public

static final 变量(并且只能是

public,用

private 修饰会报编译错误)。

接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

a4c26d1e5885305701be709a3d33442f.png

五、抽象类和接口的区别

1. 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。

2. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static

final类型的。

3. 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。

4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。

a4c26d1e5885305701be709a3d33442f.png

六、接口的声明

接口的声明语法格式如下:

[修饰符]

interface

接口名称 [extends父类]

{

// 声明变量

// 抽象方法

}

实例

Animal.java 文件代码:

interface Animal {

public void eat();

public void travel();

}

七、接口的实现

当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。

类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。

实现一个接口的语法,可以使用这个公式:

Animal.java 文件代码:

...implements 接口名称[, 其他接口, 其他接口..., ...] ...

实例

MammalInt.java 文件代码:

public class MammalInt implements

Animal{

public void eat(){

System.out.println("Mammal eats");

}

public void travel(){

System.out.println("Mammal travels");

}

public int noOfLegs(){

return 0;

}

public static void main(String args[]){

MammalInt m = new MammalInt();

m.eat(); m.travel();

}

}

八、重写接口中声明的方法时,需要注意以下规则:

1.类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常。

2.类在重写方法时要保持一致的方法名,并且应该保持相同或者相兼容的返回值类型。

3.如果实现接口的类是抽象类,那么就没必要实现该接口的方法。

九、在实现接口的时候,也要注意一些规则:

1.一个类可以同时实现多个接口。

2.一个接口能继承另一个接口,这和类之间的继承比较相似。

十、接口的继承

一个接口能继承另一个接口,和类之间的继承方式比较相似。接口的继承使用extends关键字,子接口继承父接口的方法。

十一、接口的多继承

在Java中,类的多继承是不合法,但接口允许多继承。

在接口的多继承中extends关键字只需要使用一次,在其后跟着继承接口。 如下所示:

public interface 接口名extends接口一,

接口二

以上的程序片段是合法定义的子接口,与类不同的是,接口允许多继承。

十二、如何理解接口是一种能力

a4c26d1e5885305701be709a3d33442f.png

十三、面向对象设计的原则:

1.摘取代码中变化的行为,形成接口

2.多用组合,少用继承

3.针对接口编程,不依赖与具体实现

4.针对扩展开放,针对改变关闭。

如果项目中的需求发生了改变,应该添加一个新的接口或者类,而不是要修改原有的代码。

a4c26d1e5885305701be709a3d33442f.png

总结

a4c26d1e5885305701be709a3d33442f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值