小弟我的java学习笔记(15)关于接口

我的java学习笔记(15)关于接口

1.接口技术主要用来描述具有什么功能,而并不给出每个功能的具体实现。

2.一个类可以实现一个或多个接口,并在需要接口的地方,随时使用实现了相应接口的对象。

3.在java程序设计语言中,接口不是类,而是对类的一组需求描述,这些类的需求要遵从接口描述的统一格式进行定义。

4.接口中的所有方法自动的属于public。

5.接口决不能含有实例域,也不能在接口中实现方法。

6.提供实例域和方法实现的任务应该由实现接口的那个类来完成。

7.可以将接口看成是没有实例域的抽象类。但是这两个概念还是有区别的。

8.接口不是类,尤其不能使用new运算符实例化一个接口。

9.接口变量必须引用实现了接口的类对象。可以使用instanceof方法来检查一个对象是否实现了某个特定的接口。

if(obj instanceof Comparable){...}

10.接口中的域将自动被设为public static final

11.每个类只能有一个超类,但是可以有多个接口。这也是抽象类与接口的一个区别。


实例代码

测试类

import java.util.*;

public class test {
	public static void main(String[] args)
	{
		Employee[] s = new Employee[3];
		
		s[0] = new Employee("w1",4000);
		s[1] = new Employee("w2",2000);
		s[2] = new Employee("w3",3000);
		
		Arrays.sort(s);
		
		for(Employee e : s)
		{
			System.out.println("name = " + e.getName() +",salary =" +e.getSalary());
		}
	}
}

雇员类

public 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 p)
	{
		double raise = salary * p /100;
		salary += raise;
	}
	
	public int compareTo(Employee em)
	{
		return Double.compare(salary, em.salary);
	}
	
}

输出结果

小弟我的java学习笔记(15)关于接口