java接口原理,解析接口搭建

  java接口原理,解析接口搭建

  00-1010 1.接口定义2的示例。接口详细信息示例01 3。接口详细信息024。接口细节035。界面多态性

  00-1010基本介绍

  接口就是给一些没有实现的方法,打包在一起,要用到一个类的时候,根据具体情况写这些方法。

  语法

  接口名称{//属性1方法}接口

  类实现接口{它自己的属性;自己的方法;必须实现的接口的抽象方法}

  

目录

inerface01.java

 

  包com . demo . interface _;Public类iner face 01 { public static void main(string[]args){//创建一个手机摄像头对象camera C1=new camera();phone P1=new phone();//创建计算机对象computer cc=new computer();//摄像头工作cc . work(C1);//手机作品cc . work(P1);}}usb.java

  包com . demo . interface _;接口USB {//interface//指定接口的相关方法,public void start();public void end();}computer.java

  包com . demo . interface _;公共计算机{ //写一个方法public void work(usb it){ //通过接口调用方法it . start();it . end();} }相机. java

  包com . demo . interface _;//摄像头实现接口USB公共类摄像头实现USB { @ override public void start(){ system . out . println(摄像头开始工作);} @ override public void end(){ system . out . println(相机停止工作);} }手机. java

  包com . demo . interface _;//phone类在usb接口中实现方法public类phone实现USB { @ override public void start(){ system . out . println(电话开始工作);} @ override public void end(){ system . out . println(手机停止工作);}}测试结果

  00-1010 1.在jdk7.0之前,接口中的所有方法都没有方法体,都是抽象方法,

  2.2.jdk8.0以后,接口可以有静态方法和默认方法,也就是说接口中可以有方法的具体实现。

  

1.接口定义

Ainter.java

 

  包com . demo . interface _;接口a inter {//interface//write属性public int n1=999//写方法public void hi();//抽象方法抽象可以写,也可以不写。//1.在jdk7.0之前,接口中的所有方法都没有方法体,都是抽象方法。//2.在JDK 8.0之后,接口可以有静态方法和默认方法,也就是说接口中可以有方法的具体实现。//3.但是它需要缺省的关键字修饰;默认public void ok(){ system . out . println( ok .);JDK8之后可以有一个静态方法public static void cry(){ system . out . pri。

  ntln("cry....."); }}interface02.java

  

public class interface02 { public static void main(String[] args) { A a = new A(); a.hi(); a.ok(); a.cry(); }}//如果一个类连接了接口,需要将接口中的方法全都实现class A implements Ainter{ public void hi(){ System.out.println("hi....."); }; public void ok(){ System.out.println("ok....."); } //jdk8后,可以有静态方法 public static void cry(){ System.out.println("cry....."); }}

测试结果

 

  

 

  

 

  

3.接口细节02

•注意事项和细节

 

  1)接口不能被实例化

  2)接口中所有的方法是 public方法,接口中抽象方法,可以不用abstract 修 饰

  3)一个普通类实现接口,就必须将该接口的所有方法都实现。

  4)抽象类实现接口,可以不用实现接口的方法。

  interface_detial.java

  

package com.demo.Interface_;public class interface_detial { public static void main(String[] args) {// 1)接口不能被实例化 //new IA();ERROR }}interface IA{ //2)接口中所有的方法是 public方法,接口中抽象方法,可以不用abstract 修饰 void say();//public 和 abstract可写可不写 void kk();}// 3)一个普通类实现接口,就必须将该接口的所有方法都实现。class cat implements IA{ @Override public void say() { System.out.println("say......."); } @Override public void kk() { System.out.println("kk/......."); }}// 4)抽象类实现接口,可以不用实现接口的方法。abstract class dog implements IA{}

 

  

4.接口细节03

接口

 

  5)一个类同时可以实现多个接口

  6)接口中的属性,只能是final的,而且是 public static final 修饰符。比如: int a=1;实际上是 public static final int a=1;(必须初始化)

  (7)接口中属性的访问形式:接口名.属性名

  8)一个接口不能继承其它的类,但是可以继承多个别的接口[举例] interface A extends B,C{}

  9)接口的修饰符只能是 public 和默认,这点和类的修饰符是一样的。

  示例interfacedetial02

  

package com.demo.Interface_;public class interfacedetial { public static void main(String[] args) { //证明int n1=55;//等价于 public static final int n1=55; System.out.println("IB.n1="+IB.n1);//说明n1是static; //IB.n1=60;ERROR,说明n1是final N G = new N(); System.out.println("G.n="+G.n); System.out.println("M.n="+M.n); System.out.println("N.n="+N.n); }}//5)一个类同时可以实现多个接口。interface IB{ int n1=55;//等价于 public static final int n1=55; void aa();}interface IC{ void bb();}// 8)一个接口不能继承其它的类,但是可以继承多个别的接口[举例]interface ID extends IB,IC{}class pp implements IB,IC{ @Override public void aa() { System.out.println("aa...."); } @Override public void bb() { System.out.println("bb..."); }}// 6)接口中的属性,只能是final的,而且是 public static final 修饰符。比如:// int a=1;实际上是 public static final int a=1;(必须初始化)//(7)接口中属性的访问形式:接口名.属性名// 9)接口的修饰符只能是 public 和默认,这点和类的修饰符是一样的。interface M{ int n=66;}class N implements M{}

测试结果

 

  

 

  

 

  

5.接口多态特性

•接口的多态特性

 

  1)多态参数(前面案例体现) 在前面的Usb接口案例,Usb usb,既可以接收手机对象,又可以接收相机对象,就体现了接口多态(接口引用可以指向实现了接口的类的对象)

  2)多态数组 : 演示一个案例:给Usb数组中,存放 Phone 和相机对象,Phone类还有一个特有的方法call()请遍历Usb数组,如果是Phone对象,除了调用Usb 接口定义的方法外,还需要调用Phone 特有方法 call.

  3)接口存在多态传递现象.

  interfacePoly.java

  

package com.demo.Interface_;public class interfacePoly { public static void main(String[] args) { //接口的多态体现 //接口类型的变量可以指向实现了IF接口的对象实例 IF if01=new QQ(); if01 =new WW(); //继承的多态体现 //父类类型的变量可以指向继承了AAA的对象实例 AAA t=new BBB(); t=new CCC(); }}interface IF{}class QQ implements IF{}class WW implements IF{}class AAA{}class BBB extends AAA{}class CCC extends AAA{}

interfacePolyarr.java

 

  

package com.demo.Interface_;public class interfacePolyarr { public static void main(String[] args) { //多态数组-》接口类型数组 usbb []uu=new usbb[2]; uu[0]=new ppp(); uu[1]=new ttt(); /* 给Usb数组中,存放 Phone 和相机对象,Phone类还有一个特有的方法call()请遍历Usb数组, 如果是Phone对象, 除了调用Usb 接口定义的方法外,还需要调用Phone 特有方法 call. */ for(int i=0;i<uu.length;i++){ uu[i].work();//动态绑定 //要使用call方法,需要用到线下转型 if(uu[i] instanceof ppp){ ((ppp)uu[i]).call(); } } }}interface usbb{ void work();}class ppp implements usbb{ public void call(){ System.out.println("ppp........"); } @Override public void work() { System.out.println("ppp在工作中"); }}class ttt implements usbb{ @Override public void work() { System.out.println("ttt工作中"); }}

测试结果

 

  

 

  到此这篇关于Java深入解析接口interface的文章就介绍到这了,更多相关Java接口 内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: