接口小总结

不是类,是主要用来描述类具有什么功能,而并不给出每个功能的具体实现
(implements)。尤其不能使用new运算符实例化一个接口。一个类可以实现一个或
多个接口,并在需要接口的地方,随时使用实现了响应接口的对象。
所有的方法自动地属于public
所有的域自动设为public static final
接口中绝不能含有实例域,也不能在接口中实现方法。
虽然不能构造接口的对象,但是能声明接口的变量:
Comparable x;
接口变量必须引用实现了接口的类对象:
x = new Employee(...);
可以使用instanceof检查一个对象是否实现了某个特定的接口。
接口和抽象类的区别:每个类只能扩展于一个类,但是可以实现多个接口

import java.util.*;
public class Demo{
    public static void main(String[] args){
        Employee[] staff = new Employee[3];
        staff[0] = new Employee("Harry Hacker",35000);
        staff[1] = new Employee("Carl Cracker",65000);
        staff[2] = new Employee("Tony Tester",38000);

        Arrays.sort(staff);

        for(Employee e : staff){
            System.out.println("name=" + e.getName() + ",salary=" + e.getSalary());
        }
        if(staff[0] instanceof Comparable){
            System.out.println("true");
        }else{
            System.out.println("false");
        }
        Demo d = new Demo();
        if(d instanceof Comparable){
            System.out.println("true");
        }else{
            System.out.println("false");
        }
    }
}
class Employee implements Comparable<Employee>{
    private String name;
    private double salary;
    public Employee(String n, double s){
        name = n;
        salary = s;
    }
    public String getName(){
        return name;
    }
    public double getSalary(){
        return salary;
    }
    public void raiseSalary(double byPercent){
        double raise = salary * byPercent / 100;
        salary += raise;
    }

    public int compareTo(Employee other){
        return Double.compare(salary, other.salary);
    }
}/*output:
name=Harry Hacker,salary=35000.0
name=Tony Tester,salary=38000.0
name=Carl Cracker,salary=65000.0
true
false
*/

ps:顺便分享一个赋值cmd中内容的小技巧:

1、在需要复制的内容的起始部分,单击鼠标右键,选择“标记”;
2、此刻直接左键拖动鼠标即可实现内容的选定了;
3、选择完毕,直接按键盘的回车键,即可完成复制操作了!

posted @ 2015-04-26 13:34  mvplzl  阅读(105)  评论(0编辑  收藏  举报