implements 是实现父类和子类之间继承关系的关键字,如类 A 继承 类 B 写成 class A implements B{}. implements继承的是接口,是用来实现接口中定义的抽象方法。比如:people是一个接口,他里面有say这个方法。public interface people(){ public say();}但是接口没有方法体。只能通过一个具体的类去实现其中的方法体。比如chinese这个类,就实现了people这个接口。 public class chinese implements people{ public say() {System.out.println("你好!");}}
implements与Extends的不同在于,extends可以实现父类,也可以调用父类初始化 this.parent()。而且会覆盖父类定义的变量或者函数。implements实现父类,子类不可以覆盖父类的方法或者变量。即使子类定义与父类相同的变量或者函数,也会被父类取代掉。
这样的好处是:架构师定义好接口,让工程师实现就可以了。整个项目开发效率和开发成本大大降低。
若同时用到 extends 和 implements 的时候,extends 必须放在 implements 关键字之前。如 : class A extends B implements C.
interface和implements程序实例如下:
package com.sadhu;
import java.util.*;
/**
接口
接口中不能有字段
所有的方法都是公共的
可以定义常量
接口是多继承的,一个类可以继承多个接口。
接口中不能有实现的方法。可以认为是纯的抽象类。
接口不能被实例化,但是可以声明一个接口类型的变量
*/
public class Sample
{
public static void main(String[] args)throws Exception
{
Student[] stu = new Student[]
{
new Student(18),
new Student(15),
new Student(30)
};
Arrays.sort(stu);//对自定义类数组进行排序,必须得实现Comparable接口
for(Student item : stu)
{
System.out.println(item.getAge());
}
}
}
class Student implements Comparable<Student>//实现接口 5.0中改版的泛型接口
{
private int age;
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
public Student(int age)
{
this.age = age;
}
public int compareTo(Student other)
{
if(this.age < other.age)
{
return -1;
}
if(this.age > other.age)
{
return 1;
}
return 0;
}
}
interface MyInterface extends Comparable<MyInterface>//继承接口
{
int MAXCOUNT = 10;//自动的加上public final修饰
double get();//自动加上public
}
/**
输出结果:
15
18
30
*/
转载地址:http://blog.csdn.net/sunnytina/article/details/6448408;
http://my.oschina.net/Sadhu/blog/294373