extends和implements区别-Android学习笔记


     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

   



你可能感兴趣的:(extends,implements)