java编程思想 -- 接口

来源:互联网 发布:淘宝异地登录有提示吗 编辑:程序博客网 时间:2024/05/19 16:04

这里接口指抽象类还有interface接口

java抽象类

定义:使用了关键词abstract声明的类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体。

特性

抽象类为子类提供了通用的接口,但是本身不能实例化。子类需要实现抽象方法变成非抽象类,才能实例化。

interface接口

定义

在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法

特性

(1)interface接口中定义的方法默认是(也只能是)public的。
(2)interface接口中定义的字段是默认是(也只能是)public,static,final的。字段不能为
(3)interface接口不能是空final,但是可以被非常量表达式初始化。
举例:

public interface Animal {    //The blank final field name may not have been initialized    //String name;    //public static final 的,SEX不会再发生改变了    String SEX = null;    //使用非常量表达式初始化。    int AGE = new Random().nextInt(50);}

特殊情况

实现的多个接口中,方法签名完全一样

程序正常运行

public class Test implements IA, IB{    public static void main(String[] args) {        new Test().f();    }    @Override    public void f() {        System.out.println("f()");    }}interface IA{    void f();}interface IB{    void f();}

运行结果是
f()

所以程序正常运行。

实现的多个接口中,方法名和参数列表相同,返回值不同

这类情况不能通过编译

public class Test implements IA, IB, IC{    public static void main(String[] args) {        new Test().f();    }    @Override    public void f() {        System.out.println("f()");    }}interface IA{    void f();}interface IB{    void f();}interface IC{    int f();}
0 0
原创粉丝点击