上面 手机的例子,如果希望手机具有拍照和上网的功能可以写一个接口叫PhoNet继承Photo接口,在其中添加一个上网的空方法,然后在手机类中实现这一个 接口解可以了,具体如下 package blog;
public interface PhoNet extends Photo{
public void net(); }
手机类实现该接口 package blog;
public class MobilePhone implements PhoNet { public void dial() {
System.out.println(\手机进行拨号,完成通话!\ }
public void photo() {
System.out.println(\手机完成拍照功能!\ }
public void net() {
System.out.println(\手机提供上网的功能!\ } } 测试类 package blog;
public class Test {
public static void main(String[] args) { MobilePhone mobilephone=new MobilePhone(); mobilephone.dial(); mobilephone.photo(); mobilephone.net(); } }
通过上面的例子我们可以看到接口既可以被实现也可以被另一个接口继承。这样是我们编程的伸缩性大大提高了!
听了这么多是不是有点晕晕的感觉,没关系只要再好好看几遍,心里理解,就会很快掌握的!
现在放松一下把接口的其他语法介绍一下 1、 接口不能被实例化 2、 接口没有构造方法
3、 如果一个类实现某接口则必须实现接口提供的全部方法,否则必须声明为抽象类
4、 由于类不支持多继承,所以Java提供了一个类可以实现多个接口的功能,弥补了先天不足。
5、 对于接口来讲,它可以每多有实现类,同时接口又可以继承多个接口,从而扩充该接口的方法数量
6、 在使用接口方面要有一个原则,就是接口中提供的方法必须是稳定的,如果经常在接口中添加方法,就要在它的实现类中实现这个添加的方法,假如一个接口被 1000个类实现,这是在接口中添加一个方法,就要同时修改1000的类,这是很大的工作量,因此在定义接口时一定要把握这一原则-稳定!
关于接口的基本知识就介绍的这里了,如果能很熟练的运用我在上面介绍的接口,在日常开发中就基本够用了。对于接口的认识是逐步加深的,在开发中细细体味,可能你会有更多惊喜的发现,这就是Java魅力所在!
9、Java集合之Set
关于集合可以谈的地方不多,关键是熟练。所以我在Set中给出了两种常见的排序方法,
一种是实现Comparable接口中的compareTo方法,现在给出实现程序 package blog;
public class Person implements Comparable{ private String name; private int age;
public Person(String name, int age) { this.name = name; this.age = age; }
public int getAge() { return age; }
public String getName() { return name; }
public int hashCode() {
return name.hashCode()*10+age; }
public boolean equals(Object obj) { if(this==obj)return true; else{
if(this.getClass()==obj.getClass()) {
Person temp=(Person)obj;
if(this.name.equals(temp.getName())&&this.age==temp.getAge())
return true; else return false;
}
else return false; } }
public String toString() {
return \姓名:\年龄:\ }
public int compareTo(Object o) { Person temp=(Person)o;
return this.getAge()-temp.getAge(); } }