黑马程序员技术交流社区

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

作者: 张金    时间: 2012-11-13 18:40
标题: 关于接口?
本帖最后由 张金 于 2012-11-24 13:51 编辑

接口中方法的修饰符必须是public的吗?
作者: 黑_礼_服    时间: 2012-11-13 19:43
对啊 定义接口只能用默认的或public修饰  因为定义接口就是为了让其他类去实现功能 接口从某种意义上来说就是定义的一种规则 让实现类必须遵守其接口类的规则
作者: 黑_礼_服    时间: 2012-11-13 19:53
补充下啊 接口中定义的变量定义的变量 都属于静态常量 默认是 public static final修饰的
public static final [变量名] = "值";
作者: 曹艺先-热爱编程    时间: 2012-11-13 20:12
接口中的成员变量默认都是public static final 类型的,必须被显示初始化
接口中的方法默认都是public abstract类型修饰的
接口中只能包含public  static  final类型的成员变量和public  abstract类型的成员方法

作者: 罗会涛    时间: 2012-11-13 20:36
本帖最后由 罗会涛 于 2012-11-13 20:39 编辑

接口的方法都是抽象的,本身就是为了让别人来实现,不实现就没有意义,所以把访问权限定得高一点.

作者: 张综    时间: 2012-11-13 22:24
1 接口不是类
  在java中定义接口需要使用interface关键字
  
  public interface 接口名 {}

2 与抽象类有点像(特殊的抽象类)
  可以把接口看成是特殊的抽象类。这种抽象类只有抽象方法,没有其他东西!

3 接口定义的语法格式
interface 接口名 {
  抽象方法1
  …..
  抽象方法N
}

4 接口中的方法都是抽象的
  接口中有抽象方法,但没有实例属性,没有static方法,咱们也不说没有什么了,就是可以有什么:抽象方法!

5 接口中没有属性
   接口中没有属性,可以有 public static final的属性,我们应该称之为常量。(需要马上赋值)
  接口中的方法:public abstract的!

6 接口不是用来继承的,而是用来现实的
  接口不是类!
  所以接口不能做为其他类的父类,但类可以去实现接口。

7 接口实现的语法格式
public interface MyInter {
    public abstract void fun();
}
class MyClass implements MyInter {
   public void fun() {}
}
定义了一个 MyInter接口,又定义一个类,名为MyClass,MyClass实现了MyInter接口。
实现接口的关键不是extends,而是implements。
作者: 李涛兴    时间: 2012-11-13 23:49
是的,因为接口是一个特殊的抽象类,该抽象类中的方法也必须是抽象类,如果子类要实现接口的功能,那么权限就必须足够大,所以子类方法需要public修饰,那么为了能有子类的权限那么大,所以接口的方法也必须为public
接口中一般定义 常量,跟抽象函数。而接口中的成员都有固定的修饰符的,如常量:public static final int X=1;方法:public abstract 类型 函数名();
当然,在接口中这些成员前面的修饰符也可以省略不写,那是因为java默认前面的修饰符的原因。
作者: 李涛兴    时间: 2012-11-13 23:49
是的,因为接口是一个特殊的抽象类,该抽象类中的方法也必须是抽象类,如果子类要实现接口的功能,那么权限就必须足够大,所以子类方法需要public修饰,那么为了能有子类的权限那么大,所以接口的方法也必须为public
接口中一般定义 常量,跟抽象函数。而接口中的成员都有固定的修饰符的,如常量:public static final int X=1;方法:public abstract 类型 函数名();
当然,在接口中这些成员前面的修饰符也可以省略不写,那是因为java默认前面的修饰符的原因。
作者: 许王斌    时间: 2012-11-15 09:39
j接口是个好东西,要把最基本的东西彻底搞懂
作者: 欧阳亚嗣    时间: 2012-11-15 14:25
可以在接口中显示的把方法声明为Public.即使你不显示的定义它。默认也是Public.

当你要实现一个接口的时候,实现接口中的方法也必须是public.否则在继承过程中,方法的访问权限就降低了。这是编译器错误。

作者: 曾观富    时间: 2012-11-15 22:24
因为java的接口中默认的变量都是 public static final的。
而方法就都是public的类实现了接口就要实现接口中的所有方法, 如果你不写成public的,而写 成了default或者不写,那么就代表只有包内有效, 就更改接口的的实现规则,也就大大的缩小了接口中方法的使用范围。




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