java核心技术-读书笔记(二)

接口/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进行声明)

你可能感兴趣的:(java)