内容发布更新时间 : 2025/5/5 14:35:34星期一 下面是文章的全部内容请认真阅读。
同的情况也发生在数据成员身上,因数据成员必须赋初值,且此值不能再被更改,所 以声明数据成员的关键字 final 也可省略。事实上只要记得:(1)、接口里的“抽象方 法”只要做声明即可,而不用定义其处理的方式;(2)、数据成员必须赋初值,这样 就可以了。
在 java 中接口是用于实现多继承的一种机制,也是 java 设计中最重要的一个环节, 每一个由接口实现的类必须在类内部复写接口中的抽象方法,且可自由地使用接口中 的常量。
既然接口里只有抽象方法,它只要声明而不用定义处理方式,于是自然可以联想 到接口也没有办法像一般类一样,再用它来创建对象。利用接口打造新的类的过程, 称之为接口的实现(implementation)。 格式 6-6 为接口实现的语法:
【 格式 6-6 接口的实现】
class 类名称 implements 接口 A,接口 B 制 { ? }
// 接口的实现,体现多继承的一种机下面的范例修改自范例 TestAbstractDemo1.java:
范例:TestInterfaceDemo1.java
01 interface Person 02 { 03 04 05 06 07 08 }
String name = \张三\ int age = 25 ;
String occupation = \学生\ // 声明一抽象方法 talk() public abstract String talk() ;
09 // Student 类继承自 Person 类 10 class Student implements Person 11 { 12 // 复写 talk()方法
13 14 15 16 17 18 19 20 21 22 23 24 25 26
public String talk() {
return \学生——>姓名:\,年龄:\,职业: \!\ }
}
class TestInterfaceDemo1 {
public static void main(String[] args) {
Student s = new Student() ; System.out.println(s.talk()) ; } }
输出结果: 学生——>姓名:张三,年龄:25,职业:学生!
程序说明:
1、 程序 1~8 行,声明一 Person 接口,并在里面声明了三个常量:name、age、occupation, 并分
别赋值。
2、 程序 10~18 行声明一 Student 类,此类实现 Person 接口,并复写 Person 中的 talk()
方法。
3、 程序第 23 行实例化一 Student 的对象 s,并在第 24 行调用 talk()方法,打印信息。
有些读者可能会觉得这样做与抽象类并没有什么不同,在这里需要再次提醒读者 的是,接口是 java 实现多继承的一种机制,一个类只能继承一个父类,但如果需要一 个类继承多个抽象方法的话,就明显无法实现,所以就出现了接口的概念。一个类只 可以继承一个父类,但却可以实现多个接口。
接口与一般类一样,均可通过扩展的技术来派生出新的接口。原来的接口称为基 本接口或父接口,派生出的接口称为派生接口或子接口。通过这种机制,派生接口不 仅可以保留父接口的成员,同时也可加入新的成员以满足实际的需要。
同