当前位置:   article > 正文

interface(接口)_illegal modifier for the interface field count.nam

illegal modifier for the interface field count.name; only public, static & f

如果抽象类中所有的方法都是抽象方法,就把抽象类变成了接口用interface来表示。类与接口之间通过implements来表示实现,
如果一个普通类实现接口就要把接口中所有的抽象方法进行重写,如果不想都重写就要把普通类编程抽象类。接口与接口之间允许多继承
接口中都是抽象方法?不一定 如果jdk1.8以前接口中只能有抽象方法,从jdk1.8开始就允许接口中可以去定义实体类
接口能定义构造方法?接口中没有构造方法,就无法创建对象
任何类型的对象传值给接口,编译都不检测,运行是检测类与接口之间是否是实现关系
接口与接口之间多继承,类与接口是多实现?可以
接口中允许定义属性和方法?
Illegal modifier for the interface field Shape.i; only public, static & final are permitted//属性
Illegal modifier for the interface method ma; only public, abstract, default, static and strictfp are permitted//抽象方法(默认被static&public共同修饰)

package cn.itcast.day11;
/*
 * 接口---interface---不再是类了
 * */
public class InterfaceDemo2 {
	public static void main(String[] args) {
//		Lamda表达式:使用前提是接口中有且仅有一个抽象方法
		//(参数列表)->{重写的方法体}
//	Calc c=	(x,y)->{return x>y?x:y;};
//		Calc c=(int x,int y)->x>y?x:y;
//		如果方法体只有一句话就可以省略{}以及return
//		由前面抽象方法的参数类型可以推到最后面需要的类型
		Calc c=(x,y)->x>y?x:y;
	System.out.println(c.getMax(6, 8));
	}
}
//计算器
//函数式接口---只有一个抽象方法--函数式编程
@FunctionalInterface
interface Calc{
	//求和
	//实体方法--默认方法
	public default int getSum(int m,int n) {
		return n+m;
	}
	//求积
	//静态方法---实体方法
	public static int getJi(int m,int n) {
		return n*m;
	}
	//抽象方法
	int getMax(int m,int n);
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

JDK1.8在接口中的新特性
允许定义实体方法–通过static或者default修饰完成的
Lambda表达式—用于重写(接口)抽象方法,规定接口中只能有一个抽象方法,
这个接口就叫做函数表达式接口----函数式编程



import java.util.Arrays;

/*
 * 接口---interface---不再是类了
 * */
public class InterfaceDemo3 {
	public static void main(String[] args) {
		int [] arr={2,5,416,415,8,2,6,1};
//	Array a=(int []arr)->{ Arrays.sort(arr);};	
//	Array a=(int []arr)-> Arrays.sort(arr);	
//	Array a=(arr)->Arrays.sort(arr);	
//	Array a=arr->Arrays.sort(arr);	
//		从前到后都只是一个参数的数据参与操作
//		::---的静态方法
	Array a=Arrays::sort;	
	a.sort(arr);
	System.out.println(Arrays.toString(arr));
}
}
interface Array{
	void sort(int [] arr);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

接口–模板、规范

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/201789
推荐阅读
相关标签
  

闽ICP备14008679号