不是类,是主要用来描述类具有什么功能,而并不给出每个功能的具体实现
(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、选择完毕,直接按键盘的回车键,即可完成复制操作了!
时间: 2024-10-10 07:20:10