我的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);
	}

}

输出结果

时间: 2024-10-28 14:58:04

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

【Java学习笔记】Map接口的子接口---TreeMap

TreeMap,与TreeSet类似,可以对集合中的元素进行排序,同时保持元素的唯一性. 应注意,Comparable(实现接口,记得覆盖comparaTo方法),Comparator的使用. 1 import java.util.Iterator; 2 import java.util.TreeMap; 3 4 import cn.itcast.p2.bean.Student; 5 import cn.itcast.p3.comparator.ComparatorByName; 6 7 pub

Java学习笔记—抽象类和接口

1.抽象类 在Java语言中使用abstrac关键字来定义抽象类和抽象方法,抽象方法没有定义,方法名后面直接跟一个分号,而不是花括号. public abstract class Employee { private String name; private String address; private int number; public abstract double computePay(); //其余代码 } 抽象类总结: 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报

java学习笔记之面向对象接口

面向对象接口总结 接口理解: 接口是功能的集合,接口的定义也使用.java文件,编译之后也产生.class文件.类的定义使用class  ,而接口的定义使用interface: 定义格式: 1 public interface 接口名{ 2 //常量定义格式:public static final 常量名(一般是大写) 3 成员变量->常量 4 //抽象方法定义:public abstract 返回值类型 方法名(参数列表) 接口中的方法全部是抽象方法 5 成员方法->抽象方法 6 } 7 /

Java学习笔记15

Object类是所有类.数组.枚举类的父类,是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括 数组)都实现这个类的方法. Object类实现了以下方法: 我们来看看源码中toString()方法是如何定义的: public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 通过以下程序可以看出toString()方法返回的是这个类的全称

Java学习笔记之接口

一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(String msg); } 定义接口使用关键字interface 修饰符interface前面的public可以省略,如果省略,则采用默认访问控制,即只有在相同包结构的代码才可以访问此接口 接口不可以有构造方法(区别于类中的构造方法) 接口里面的所有成员,包括常量.方法等都是public访问权限,所以在

Java学习笔记_23_List接口实现类

23.List接口实现类: List接口继承了Collection接口,它是一个允许存在重复项的有序集合. 1>实现类ArrayList: ArrayList类支持可随需要而增长的动态数组.数组列表以一个原大小被创建,当超过了它的大小, 类集自动增大,当对象被删除后,数组就可以缩小. 优点:ArrayList类对于使用索引取出元素用较高的效率,他可以用索引快速定位对象. 缺点:ArrayList类对于元素的删除或插入速度较慢. 构造方法: · ArrayList(): 构造一个初始容量为10的空

Java学习笔记_21_Collection接口

21.Collection接口: 1>容器类的添加.删除: · add(Object o) :将对象添加到集合. · Remove(Object o) :删除集合中与o相匹配的对象. 2>容器中类的查询: · Size(): 返回集合中元素的个数. · isEmpty(): 判断集合中是否包含元素. · contains(Object o): 判断集合中是否包含指定元素. · iterator(): 返回集合的一个迭代器,用来访问该集合的元素. · contains(Collection c)

Java学习笔记_24_Map接口

24.Map接口: Map接口定义了存储"键(key)-值(value)映射对"的方法,Map中不能有重复的"键", Map实现类中储存的"键-值"映射对是通过键来唯一标识的,Map底层的"键"使用Set来存放的, 所以Map中的映射对的"键"对应的类必须重写hashCode()和equals()方法, 常用String作为Map的"键".  Map的添加.删除操作: · Object 

java学习笔记3——java关键字

java学习笔记3——java关键字 虽然老师说不用刻意的去记忆,但是我还是在网上找到了非常详细的注解,再次收藏 关键字的类型表: 各个关键字的详细注解和实例,按首字母排序: 1.abstract abstract 关键字可以修改类或方法. abstract 类可以扩展(增加子类),但不能直接实例化. abstract 方法不在声明它的类中实现,但必须在某个子类中重写. -示例- public abstract class MyClass{ } public abstract String my