java程序设计基础——接口

文章目录


前言

接口(interface)是java语法所提供的一种重要功能,它的结构与抽象类相似。但不同的是:

(1)接口的数据成员都是静态的且必须初始化,即数据成员必须是静态称量。

(2)接口中除了声明抽象方法外,还可以定义私有方法、静态方法和默认方法,但不能定义一般方法。


提示:以下是本篇文章正文内容,下面案例可供参考

一、接口的定义

1.接口定义的语法格式:

[public] interface 接口名称[extends父接口名列表] {

[public][static][final] 数据类型常量名=常量; ---------------------定义常量 


[ public][abstract] 返回值的数据类型方法名(参数表);----------------------定义抽象方法

private 返回值的数据类型方法名(参数表){ ------------------------定义私有方法
方法体
}

public static 返回值的数据类型方法名(参数表) { -----------------定义静态方法

方法体

}

public default 返回值的数据类型方法名(参数表) {方法体-----------------定义默认方法
方法体
}
}

注意:其中interfre前的publ修饰符可以省略.若省略,则接口使用缺省访问控制,即接口只能

被与它处在同包中的成员访问。 当修饰符声明为pubiec 时,接口能被任何类的成员访问。

2.使用接口的注意事项

1.对于成员变量,成员变量必须是静态有一定要赋初值,且此值不能再被修改,若省略成员变量的修饰符,系统默认为puble state final;

2.对于抽象方法,若方法名前即使省略修饰符,系统仍然默认为publie abstract;

3.对于其他方法,接口中的静态方法是用public static修饰的,而默认方法是用public default修饰的,私有方法是用private修饰的;

4.若在定义接口时若省略了public 修饰符,则在实现抽象方法时,则不能省略该修饰符。.

5..接口中的常量与静态方法都是静态的.因此可以直接用接口名调用。接口中的私有方法仅可以被同一接口所定义的默认方法或另一私有方法调用;

6.接口中的抽象方法不能有方法的实现,即不能有方法体,而按接口中的私有方法、静态方法和默认方法都必须有方法的实现,即必须要定义方法体。

二、接口的使用

1.接口的实现与回调

1.接口的实现:利用接口创建新类的过程称为按口的实现(impterpentatio),实现接口的类为实现类。

接口实现的语法格式为:

class 类名称 implements 接口名表{

}

 注意:实现类实现多个接口,必须重写完全部接口的全部接口的抽象方法,否则实现类要定义成抽象类。

2.接口的回调:声明接口类型的变量,并用它来访问类所实现该接口的方法.这种访间方式称为接口回调,即把实现接口的类所创建的对象赋值给用该接口声明的接口变量,那么该接口变量就可以调用被类实现的该接口中的方法。

2.接口的继承

1.与类相似,接口也有继承性。定义接口时可通过extends关键字。与类的继承不同的是,一个接口可以有 一个以上的父接口,它们之间用逗号分隔,形成父接口列表。如下:

interfance A extends B,C {

}

2.新接口将继承所有父接口中的常量、抽象方法和默认方法,但不能继承父接口中的静态方法,也不能被实现类所继承。如果类实现的接口继承自另外一个接口,那么该类必须实现在接口继承链中定义的所有方法。

3.利用接口实现类的多重继承

虽然一个类只能有一个直接父类,但是它可以同时实现若干个接口。一个类实现多个接口时,在implements子句中用逗号分隔各个接口名。这种情况下如果把接口理解成特殊的类,那么这个类利用接口实际上就获得了多个父类,即实现了多重继承。

public class interfance A extends B,C {

}

4.解决接口多重继承中名字冲突问题

1.当多个父接口中存在同名的方法时,必须通过特殊的方式加以解决。
2.要解决方法名冲突问题,可以在接口的实现类中提供同名方法的一个新实现,或者引用其中一个父接口中的默认方法,这种引用方式称为委托某父接口中的默认方法.委托方式为:

接口名. super默认方法名()


总结

以上就是关于接口的主要内容,本文仅仅简单介绍了接口。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验一: Java编程基础 (1) 配置环境变量,熟悉编程环境。 (2) 建立一个Java的Application程序,编译、运行以下例题: public class ex01 { public static void main( String arg[ ]) { System.out.println(“hello!”); } } 实验二:流程控制 (1) 编程输出100以内的奇数。 (2) 编程输出乘法表。 (3) 编写程序,定义一个一维数组并赋有初值,同时找出一维数组中的最大值和最小值并输出。 实验三:类和对象 (1) 设计一个User类,其中包括用户名、口令等属性以及构造方法(至少重载2个)、获取和设置口令的方法、显示和修改用户名的方法等。编写应用程序测试User类。 (2) 定义一个Student类,其中包括学号、姓名、性别、出生年月等属性以及init( )——初始化各属性、display( )——显示各属性、modify( )¬——修改姓名等方法。实现并测试这个类。 (3) 从上题的Student类中派生出Graduate(研究生)类,添加属性:专业subject、导师adviser。重载相应的成员方法。并测试这个类。 实验四:类的继承 (1) 定义一个Animal类,其中包括昵称、性别、体重属性,构造函数初始化各属性,显示各属性的成员函数、修改属性的成员函数。实现并测试这个类。 (2) 从上题的类中派生出Dog类,添加年龄属性。重载相应的成员方法,并添加新的方法bark(),输出“wangwangwang”。并测试这个类。 实验五:接口 (1) 定义一个接口Inf,含有常量π和一个实现计算功能的方法calculate( ),再分别定义一个面积类area和一个周长类circumference,各自按计算圆面积和圆周长具体实现接口中的方法,并以半径为5来测试这两个类。 (2) 定义一个接口run(),汽车类和卡车类分别实现这个类,汽车类实现这个接口输出的是“汽车在跑”,卡车类输出的是“卡车在跑”,丰富这两个类,在主程序中测试。 实验六:异常处理 (1) 定义一个类,在main方法的try块中产生并抛出一个异常,在catch块中捕获异常,并输出相应信息,同时加入finally子句,输出信息,证明它的无条件执行。 (2) *定义一个类Caculate实现10以内的整数加减法的计算。自定义一个异常类NumberRangeException,当试图进行超范围运算时,产生相应的信息。编写应用程序进行测试。 实验七:图形界面编程 (1) 在窗体上产生一个单文本框和两个命令按纽:“显示”和“清除”。当用户单击“显示”按纽时,在文本框中显示“Java 程序”字样;单击“清除”按纽时清空文本框。 (2)设计如下界面: 当用户输入了两个操作数并点击运算种类按纽后,在运算结果对应的文本框中显示运算结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值