java 接口

接口

继承:is-a,谁是谁;
接口:has a,有一个什么;

为什么要使用接口?

接口:可以被认为是一种规范。
接口:可以被认为是实现了某种功能,这种功能是通过接口来实现的。

接口怎么写?

接口实际上可以被看作是一种受到限制的类,所以我们将class换成了interface。
接口里面可以写4种内容,

  1. 常量
  2. 抽象方法
  3. 静态方法
  4. 默认方法
修饰符 interface  接口名{
	public static final int one = 3.14;//public static final 是默认的可以不写
	public abstract void two();//public abstract 是默认的可以不写
	public static void three(){//public 是默认的可以不写
	}
	public default void  four(){//public 是默认的可以不写
}
	}

接口怎么用?(接口就是特殊受限制的类)

  1. 接口和类之间:实现(接口继承)
public interface One{
}
public interface Two{
}
public class Three implements One,Two{//类Three实现了接口one和two
}
  1. 接口和接口之间:继承,并且接口支持多重继承。
public interface One{
}
public interface Two{
}
public interface Three extends One,Two{//接口Three继承了接口one和two
}

  1. 当一个类又继承,又实现接口时,接口应该写在继承之后;
class One{}
public interface Two{}
public interface Three{}
class Four extends One implements Two,Three{}

接口需要注意的问题:

  1. 接口和接口间的继承,只继承非static内容,即抽象方法和default方法。
  2. 类实现接口时,需要重写或覆盖抽象方法,否则这个类应该写为抽象的。
  3. 接口和抽象类一样,都不能产生对象。
  4. 接口只能是public。

default static

为什么提供默认方法?

  1. default 方法是接口中自带实现的方法。大多数都希望用这种实现。
  2. default方法在实现接口时,是无需重写的,但是也可以进行重写。
  3. 但是static是不能被重写的;

默认方法冲突

  1. 父类优先,如果既有接口,也有父类,此时父类和接口中相同的方法只考虑用父类的。
  2. 当多个接口中都有default方法,那么此时子类谁也不用,必须覆盖(自己重写)。

Comparable

  1. 这个接口涉及到对象的比较,即比较两个对象的大小。
  2. 对象在今后涉及到比较的时候,都需要实现这个接口。
public interface Comparable<T>{//比较 接口
	public int compareTo(T o);
	}

怎么用这个接口?

public class Name implements Comparable<Name>{
	public int compareTo(Name o){
//自己写比较规则
//如果当前对象(this)比另一个对象(o)小,就要返回负数。
//等于返回0;
//如果当前对象(this)比另一个对象(o)大,就要返回正数。
	}
}

Comparator

特殊情况

  1. 我们用了一个别人写的类,需要对象比较。
  2. 没有实现接口。
  3. 我们又不能修改别人写的类。

解决这个情况的方法是:写一个类,名字任意,但是要求这个类实现Comparator接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值