今天看到了两个这样的写法,非常好奇。
这段代码是什么意思呢
public class minStack<T extends Comparable<? super T>> {
Stack<T> data;
Stack<T> min;
T minimum;
int N;
public minStack() {
data = new Stack<T>();
min = new Stack<T>();
N = 0;
}
class Dog implements Comparable<Dog>{
int weight;
public Dog(int weight) {
this.weight = weight;
}
@Override
public int compareTo(Dog o) {
return this.weight - o.weight;
}
}
class Labrador extends Dog{
public Labrador(int weight) {
super(weight);
}
}
但如果泛型是
因为他并没有实现 comprable,如果改成
从基本的继承实现概念出发:若有:
class Father implements Comparable
以及:class Son extends Father 如果定义Son时:Son 没有implements Comparable那么:对于这种情况:class A
关键字implements是一个类,实现一个接口用的关键字,它是用来实现接口中定义的抽象方法。实现一个接口,必须实现接口中的所有方法。使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)
还有几点需要注意:
(1)接口可以被多重实现(implements),抽象类只能被单一继承(extends)
(2)接口只有定义,抽象类可以有定义和实现
(3)接口的字段定义默认为:public static final, 抽象类字段默认是”friendly”(本包可见)
一、java中的compareTo():
String s1=“abc”;
String s2=“ace”;
int result=s1.compareTo(s2);
System.out.println(result);
用于比较前后2个字符串的asc码的差值,如果result=0,表示s1=s2; <0表示s1
注意:数字类型比较不能用compareTo,直接用 >,<,==,!=比较即可;