2020-11-23

本文详细介绍了Java中的接口,包括接口的定义、语法特点、使用方法以及强制类型转换。示例代码展示了如何实现一个包含阶乘计算、整数幂运算和判断两个数之和是否大于100功能的MathTools1类,该类实现了MathTool2接口。接口的应用有助于增强代码的扩展性和降低耦合度。
摘要由CSDN通过智能技术生成

接口(interface)
一、接口的概念
接口是一组规范,使用者和实现者共同遵守的规范
**二、语法 **
1.声明一个接口
访问修饰符(public/default)
interface 接口名{}
2.接口中的属性都是公开静态最终的常量,即public static final
3.接口中的方法都是公开抽象的方法,即public abstract
4.接口中的修饰符可以缺省,但是子类覆盖方法的时候,必须声明为public
5.使用接口的关键字是 实现(implements)
**三、接口的特点 **
1.接口中属性和方法的访问修饰符都是默认的,不可更改的
2.接口中没有构造方法
3.接口不能创建对象,但是可以声明引用(多态)
4.接口编译之后会生成.class文件,但接口不是类
**四、接口的使用 **
1.接口与接口之间的使用
一个接口可以继承多个接口,关键字是extends —> 多继承
2.接口与类之间的使用
一个类可以实现多个接口
—> 多实现
3.继承和实现
一个类可以继承一个父类的同时实现多个接口 —> 单继承多实现
class Sub extends Super implements IA,IB{}
**五、强制类型转换 **
1.强制类型转换中,如果一方为接口类型引用,那么编译一定通过
2.运行是否通过:
转换双方的类型匹配,运行通过
转换双方类型不匹配,报类型转换异常
**六、接口的作用 **
1.扩充子类功能
将主要的功能定义在父类中,而将次要的功能定义在接口中
2.弱耦合
通过接口将使用者和实现者分离
通过多态将模块间的关系弱化
编程题目:
在这里插入图片描述
实现:

package Thirdweek;
interface MathTool2 {	 
long fact(int m);	
 long intPower(int m,int n) ;		 boolean findFactor(int m,int n);}	class MathTools1 implements MathTool2{	 public long fact(int m) {//求参数的阶乘		int sum=1;  		
if(m<0) {   			
throw new IllegalArgumentException("需要计算的参数必须为正数!");
//抛出不合理参数异常 		
 }  		
for(int i=1;i<=m;i++) {  			 sum*=i;  		
}  		
return sum;	}		
 public long intPower(int m,int n) {
 //求m的n次方		
 int y=0;		
 if(n==0){			
 y=1;		
 }else{			
 y=(int) 
 intPower(m,n/2);		
 	y=y*y;		
 		if(n%2!=0){			
 			y=m*y;		
 				}		}	
 					return y;	
 					}		
 public boolean findFactor(int m,int n) {//判断参数的和是否大于100	
 	if(m+n>100){ 			System.out.println("参数和大于100");			return true;               
 	    }else if(m+n==100){         	System.out.println("参数和等于100");        	return false;             
 	         }else{        	System.out.println("参数和小于100");        	return false;     
 	            }	 	}	}
 public  class MathTools {	
 public static void main(String[] args) {		
 // TODO Auto-generated method stub		MathTools1 mathtools1 = new MathTools1(); 		System.out.println(mathtools1.fact(8));				System.out.println(mathtools1.intPower(2, 3));				System.out.println(mathtools1.findFactor(45,87));	}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值