接口/lambda表达式与内部类
接口
为了让类实现一个接口,
(1)将类声明为实现给定的接口
(2)为接口中的所有方法进行定义
要将类声明为实现某个接口,使用implements:
class Employee implements Comparable
需要提供compareTo方法(sort要用)
class Employ implements Comparable<Employee>
{
public int comaraTo(Employee other)
{
return Double.compare(salary,other.salary);
}
}
- 接口的特性
不能声明接口的对象,能声明接口的变量
public interface Moveable
{
void move(double x,double y);
}
接口可以拓展
public interface Powered extend Moveable
{
double milesPerGallon();
double SPEED_LIMIT = 95;
}
解决默认方法冲突
(1)接口与超类的方法冲突,超类优先
(2)一个超接口与接口相冲突,覆盖这方法
interface Named
{
default String getName()
{
return getClass().getName()+"_"+hashCode();
}
}
class Student implements Person,Named
{
public String getName()
{
return Person.super.getName();
}
}
- 接口实例
1.回调
2.Comparator接口
public class lengthcomp implements Comparator<String>
{
public int compare(String first,String second)
{
return first.length()-second.length();
}
String[] friends = {"peter,"paul","mary"};
Arrays.sort(friends,new lengthcomp)
}
- 内部类
既可以访问自身的数据域,还可以访问它的外围类对象的数据域
1.局部内部类(不能用public 或private进行声明)