A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张金 中级黑马   /  2012-11-13 18:40  /  2567 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张金 于 2012-11-24 13:51 编辑

接口中方法的修饰符必须是public的吗?

10 个回复

倒序浏览
对啊 定义接口只能用默认的或public修饰  因为定义接口就是为了让其他类去实现功能 接口从某种意义上来说就是定义的一种规则 让实现类必须遵守其接口类的规则

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
补充下啊 接口中定义的变量定义的变量 都属于静态常量 默认是 public static final修饰的
public static final [变量名] = "值";
回复 使用道具 举报
接口中的成员变量默认都是public static final 类型的,必须被显示初始化
接口中的方法默认都是public abstract类型修饰的
接口中只能包含public  static  final类型的成员变量和public  abstract类型的成员方法

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 罗会涛 于 2012-11-13 20:39 编辑

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

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
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。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
是的,因为接口是一个特殊的抽象类,该抽象类中的方法也必须是抽象类,如果子类要实现接口的功能,那么权限就必须足够大,所以子类方法需要public修饰,那么为了能有子类的权限那么大,所以接口的方法也必须为public
接口中一般定义 常量,跟抽象函数。而接口中的成员都有固定的修饰符的,如常量:public static final int X=1;方法:public abstract 类型 函数名();
当然,在接口中这些成员前面的修饰符也可以省略不写,那是因为java默认前面的修饰符的原因。
回复 使用道具 举报
是的,因为接口是一个特殊的抽象类,该抽象类中的方法也必须是抽象类,如果子类要实现接口的功能,那么权限就必须足够大,所以子类方法需要public修饰,那么为了能有子类的权限那么大,所以接口的方法也必须为public
接口中一般定义 常量,跟抽象函数。而接口中的成员都有固定的修饰符的,如常量:public static final int X=1;方法:public abstract 类型 函数名();
当然,在接口中这些成员前面的修饰符也可以省略不写,那是因为java默认前面的修饰符的原因。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
j接口是个好东西,要把最基本的东西彻底搞懂
回复 使用道具 举报
可以在接口中显示的把方法声明为Public.即使你不显示的定义它。默认也是Public.

当你要实现一个接口的时候,实现接口中的方法也必须是public.否则在继承过程中,方法的访问权限就降低了。这是编译器错误。
回复 使用道具 举报
因为java的接口中默认的变量都是 public static final的。
而方法就都是public的类实现了接口就要实现接口中的所有方法, 如果你不写成public的,而写 成了default或者不写,那么就代表只有包内有效, 就更改接口的的实现规则,也就大大的缩小了接口中方法的使用范围。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马