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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

电脑运行主板,电脑运行基于主板,主板上有很多接品,网卡 声卡 PCI插槽等;

interface Pci//pci接口
{
public void open();
public void close();
}
class  MainBoard//主板类
{
public void run()
{
System.out.println("mainboard run")
}
public void usepci(Pci p)
{
if(p!=null)
  {
     p.open
  p.close
  }
}
}
class NetCard implements Pci//网卡,继承Pci插槽
{
public void open()
{
System.out.println("netcard open")
}
public void close()
{
System.out.println("netcard close")
}
}
class SoundCard implements Pci//网卡,继承Pci插槽
{
public void open()
{
System.out.println("soundcard open")
}
public void close()
{
System.out.println("soundcard close")
}
}
class DongtaiDemo//动态 主函数
{
public static void main(String[] args)
{
  MainBoard mb= new MainBoard();
  mb.run();
  mb.usepci(null);
     mb.usepci(new NetCard());  
  mb.usepci(new SetCard());
}
}


评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
interface的规定跟类的规定一样的   一个.java文件里可以有几个类和接口,但是只有跟java文件同名的那个才能加public
回复 使用道具 举报
abstract,public 都可以修饰接口,或者没有修饰符。
回复 使用道具 举报
本帖最后由 袁錦泰 于 2012-5-20 12:35 编辑

声明接口:
[public] interface 接口名 [extends 父接口名列表(用,分隔)]

常量声明:
[public] [static] [final] 域类型 域名 = 常量值;

抽象方法声明:
[public] [abstract] [native] 返回值 方法名(参数列表) [throw 异常];
权限修饰符不写不带面没有(注意:我说的是权限修饰符),可以被protected修饰,但只能在所在包中进行调用;也可以被public修饰.

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
interface是可以有访问权限的,不写只能在package内访问
回复 使用道具 举报
呵呵,java的接口有一个默认权限就是是public static final。而接口中的方法的默认权限都是:public abstract.
回复 使用道具 举报
一个Java文件可以有多个类或者是接口,但是其中只能有一个类被public修饰,称为主类。(这是规定)
一个完整的java程序中可以没有主类。
java程序的名字必须与主类的名字相同,main()方法一般放在用public修饰的类中(但是main()方法不是必须放在主类中)。
而对于楼主说的:接口中的成员都是public访问类型的。目的只是为了扩大成员变量的访问权限。
而interface前面可以有public修饰,也可以没有。
回复 使用道具 举报
引自《java编程思想》
在java中,申明借口的语法如下:
[public] interface 接口名 [extends 父接口名列表]
{
//常量声明
[public] [static] [final] 域类型 域名 = 常量值;

//抽象方法声明:
[public] [abstract] [native] 返回值 方法名(参数列表) [throw 异常列表];
}
可以在interface关键字前面添加public,如果不添加public,则它只具有包访问权限,这样它就只能在同一个包中可用,借口也可以包含域,但是这些域隐式 的是static和final的。
可以选择在接口中显式地将方法申明为public,但是即使你不这么做,他们也是public,因此当要实现一个接口时,在接口中被 定义的方法必须定义为public,否则他们只能的到默认的包访问权限,这样在方法被继承的过程中,其可访问权限就被降低了,这是java编译器所不允许的。

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马