黑马程序员技术交流社区

标题: 关于接口的问题 [打印本页]

作者: 陈世涛    时间: 2012-7-18 08:40
标题: 关于接口的问题
interface Inter
{
        //接口的成员。都有固定的修饰符。
        /*
        常见:
                1,常量。全局常量 有固定修饰符 public  static final
                2,抽象方法。固定修饰符 public abstract
        */
        public static final int Shu = 3;
        public abstract void show();
//        public abstract void method();


}
那是不是可以这样理解,
接口中的成员只有常量和抽象方法,
且都有固定的修饰符呀?
求指教。
作者: 曹魁    时间: 2012-7-18 08:44
只能说,接口中最常见的成员是全局常量和抽象方法。
记住:只是最常见,不代表只有它们没有其他的。

全局常量:共有的不需要对象,直接用接口调用的,不可变的。表现形式:public static final
抽象方法:public abstract

接口中的成员都有固定的修饰符。
全局变量:public static final
抽象方法:public abstract
作者: 周玉龙    时间: 2012-7-18 08:59
接口和抽象类的区别
                A:抽象类只能单继承
                   接口可以多实现。
                B:抽象类中可以由非抽象方法。抽象类中可以定义变量和常量。
                   接口中的方法都是抽象的。接口中只能有静态常量。
                   因为接口中的方法都有默认修饰符:public abstract
                       接口中的成员变量都有默认修饰符:public static final
                C:抽象类中定义的是一个体系的共性功能。
                   接口中通常定义的对象中的扩展功能。
                D:接口的出出现避免了单继承的局限性。
                E:抽象类被继承表示的是:is a 的关系。叫做:xx是yy的一种。
                   接口被实现表示的是:like a 的关系。叫做:xx像yy一种。
所有你也可以这样理解,

作者: 陈冲    时间: 2012-7-18 09:13
据我的理解,接口中是只有常量和抽象方法的。

1.接口里的数据成员必须初始化,且数据成员均为常量;
2.接口里的方法必须全部声明为abstract,也就是说,接口不能像抽象类一样保有一般的方法,必须全部是“抽象方法”;
注意:
1.因为接口中的方法必须是抽象方法,而没有一般的方法,所以抽象方法中的abstract关键字是可以省略的;
2.因数据成员必须赋初值,且此值不能被改变,所以数据成员的关键字final也可以省略。
虽然关键字可以省略,但是并不推荐这样写,因为这样会降低程序的可读性。
作者: 丁岩    时间: 2012-7-18 10:30
接口初期可以理解为一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。
接口中定义常量:public static final int x=3;
定义方法:public abstract void method( );
请注意我红笔注明的部分。这些可以在定义接口的时候省略不写,但是含义和写上去是一样的。

接口不可以创建对象,因为有抽象方法,所以需要被子类实现。子类对接口中的抽象方法全部覆盖后,子类才可以实例化。

接口.png (14.98 KB, 下载次数: 14)

接口.png

接口2.png (778 Bytes, 下载次数: 21)

接口2.png

作者: 黑马-王言龙    时间: 2012-7-18 10:31
你理解的是对的!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2