Java学习笔记Day13:接口

1、接口关键字 interface
2、接口当中的方法, 全部不能有具体的 实现
都是抽象方法–默认的public abstract
3、阿里巴巴:接口当中的方法尽量简洁
4、接口中的成员变量默认是public static final必须初始化
5、类和接口之间的关系-》实现
6、只要普通类实现接口中的方法,那么接口当中的所有方法必须重写
7、接口是不能实例化的
8、接口可以继承多接口,不能实现接口

面试题:
抽象类和接口的区别?

  • 抽象类要被子类继承,接口要被类实现
  • 接口只能做方法声明,抽象类中可以作方法声明,也可以做方法实现
  • 接口里定义的变量只能是公共的静态常量,抽象类中的变量是普通变量
  • 接口是设计的结果,抽象类是重构的结果
  • 抽象类可以有具体的方法和属性,接口只能有抽象方法和不可变常量

重写和重载的区别?

9、自定义类型进行排序时,一定要implements Comparable接口中的comparaTo接口
8、字符串大小比较用comparaTo方法

class Student implements Comparable<Student>{ 
    private String name; 
    private int score; 
    public Student(String name, int score) { 
        this.name = name; 
        this.score = score; 
    } 
    @Override
    public int compareTo(Object o) {
    	StudentPerson stu=(StudentPerson)o;
    	if(this.score>((StudentPerson) o).score){
    		return -1;
    	}else if(this.score<((StudentPerson)o).score){
    		return 1;
    	}else {
			return 0;
		}
	}
    @Override 
    public String toString() { 
        return "[" + this.name + ":" + this.score + "]"; 
    } 
}
class A{
    public static void sort(Comparable[] array) { 
        for (int bound = 0; bound < array.length; bound++) { 
            for (int cur = array.length - 1; cur > bound; cur--) { 
                if (array[cur - 1].compareTo(array[cur]) > 0) {                                      Comparable tmp = array[cur - 1];     
                      array[cur - 1] = array[cur]; array[cur] = tmp; 
                  } 
            } 
        } 
    }
    public static void main(String[] args){
        Student[] students = new Student[] { 
            new Student("张三", 95), 
            new Student("李四", 96), 
            new Student("王五", 97), 
            new Student("赵六", 92), 
        };
    Arrays.sort(students); 
    System.out.println(Arrays.toString(students));
}
  • Cloneable接口

Cloneable接口是一个空接口,当中没有抽象方法
空接口(标记接口-》标志当前类可以进行克隆

发布了67 篇原创文章 · 获赞 12 · 访问量 1510

猜你喜欢

转载自blog.csdn.net/qq_42174669/article/details/103148055
今日推荐