java接口的关键字_Java 接口 interface关键字

1.概念:一种特殊的类,有全局常量和公共方法组成

定义接口用interface关键字

2.语法:            //中括号“[ ]”的含义:你可继承父接口,也可不继承,是可选的

[修饰符] (abstract) interface 接口名[extends 父接口1,父接口2...]  //接口可继承多个父接口(即:接口是多继承的);abstract若没写,系统会自动加上

{

0个到多个常量定义...

0个到多个抽象方法的定义...

}

接口就是用来被继承,被实现的,修饰符一般建议用public

注意:不能使用private和protected修饰接口

3.接口定义:

常量:接口中的属性是常量,即使定义时不添加public static final修饰符,系统也会自动加上。

方法:接口的方法只能是抽象方法,总是使用,即使定义时不添加public abstract修饰符,系统也会自动加上。

4.一个类可以实现一个或多个接口,实现接口使用implement关键字,Java中一个类能继承一个父类,是不够灵活的,可通过实现多个接口来补充

继承父类实现接口的语法为:

[修饰符] class 类名 extends 父类 implement 接口1,接口2...

{

类体部份  //如果继承了抽象类,需要实现继承的抽象方法;如果遵守了一个接口,就要实现接口中的抽象方法

}

如果要继承父类,继承父类必须在实现接口之前

例:

abstract class Telphone{    //此父类只是用来约束子类,所以可以定义成抽象类

public abstract void call();    //在抽象类里若想要约束子类,就可定义为抽象方法       抽象方法没有方法体以分号结束

public abstract void message();

}

class Cellphone extends Telphone{

public void call(){        //实现抽象类里要求的方法call

System.out.println("通过键盘来打电话");

}

public void message(){    //实现抽象类里要求的方法message

System.out.println("通过键盘来发短信");

}

}

class Smartphone extends Telphone{

public void call(){

System.out.println("通过语音来打电话");

}

public void message(){

System.out.println("通过语音来发短信");

}

}

class Ex17{

public static void main(String[] args){

Telphone tel1=new Cellphone();    //抽象类的父类引用指向一个子类对象,先创建一个普通的电话的对象

tel1.call();    //通过引用就可以打电话

tel1.message();  //通过引用就可以发短信

Telphone tel2=new Smartphone();  //通过父类的引用指向智能手机的对象

tel2.call();

tel2.message();

}

}

interface IplayGame{

public void PlayGame();

}

abstract class Telphone{    //此父类只是用来约束子类,所以可以定义成抽象类

public abstract void call();    //在抽象类里若想要约束子类,就可定义为抽象方法       抽象方法没有方法体以分号结束

public abstract void message();

}

class Cellphone extends Telphone implements IplayGame{

public void call(){        //实现抽象类里要求的方法call

System.out.println("通过键盘来打电话");

}

public void message(){    //实现抽象类里要求的方法message

System.out.println("通过键盘来发短信");

}

}

class Smartphone extends Telphone{

public void call(){

System.out.println("通过语音来打电话");

}

public void message(){

System.out.println("通过语音来发短信");

}

public void PlayGame(){

System.out.println("具有玩游戏的功能");

}

}

class psp implements IplayGame{      //不能继承phone抽象类,但psp有游戏的特性,所以要遵守IplayGame接口

public void PlayGame(){

System.out.println("具有玩游戏的功能");

}

}

class Ex17{

public static void main(String[] args){

Telphone tel1=new Cellphone();    //抽象类的父类引用指向一个子类对象,先创建一个普通的电话的对象

tel1.call();    //通过引用就可以打电话

tel1.message();  //通过引用就可以发短信实现了接口的对象

Telphone tel2=new Smartphone();  //通过父类的引用指向智能手机的对象

tel2.call();

tel2.message();

IplayGame ip1=new Smartphone();      //ip1接口引用指向一个实现了接口的对象

ip1.PlayGame();

IplayGame ip2=new psp();

ip2.PlayGame();

IplayGame ip3=new IplayGame();{  //new一个接口的代码                输出:通过键盘来打电话          或者:new IplayGame(){

public void PlayGame(){                                 通过键盘来发短信             public void PlayGame(){

System.out.println("使用匿名内部类的方式实现接口");         通过语音来打电话              System.out.println("使用匿名内部类的方式实现接口");

}                                   通过语音来发短信              }

};                                      具有玩游戏的功能               }

ip3.PlayGame();                              具有玩游戏的功能

}                                      使用匿名内部类的方式实现接口

}

使用接口:

接口在使用过程中,还经常与匿名内部类配合使用

匿名内部类:没有名字的内部类,多用于关注实现而不关注实现类的名称

例://直接new一个接口,直接在接口里实现这个代码

interfacce i=new interface(){

public void method(){

System.out.println("匿名内部类实现接口的方式");

}

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值