接口(忽略的知识点)

简介: 接口属性只能是final的,而且是public static final修饰符比如int a=10; 其实上是public static final int a=10;

接口格式


interface 接口名{


       //属性;


       //方法;(1.抽象方法 2.默认实现方法 3.静态方法


}


接口的修饰符


只能是default和public,和类一样


接口属性


只能是final的,而且是public static final修饰符


比如int a=10; 其实上是public static final int a=10;


属性的访问


接口名.属性名


接口方法


在JDK7中,接口中的方法都是没有方法体的


JDK8中,接口可以有默认的实现方法,需要default关键词修饰


               ,接口也可以有静态的实现方法,需要static关键词修饰


定义接口:

public interface DBcon{
    public void con();
    public void close();
}


定义两个使用接口的类

public class SQL implements DBcon{
    @Override
    public void con(){
        System.out.println("连接SQL");
    }
    @Override
    public void close(){
        System.out.println("断开SQL");
    }
    //特有方法
    public void open(){
        System.out.println("打开SQL");
    }
}


public class Oracle implements DBcon{
    @Override
    public void con(){
        System.out.println("连接Oracle");
    }
    @Override
    public void close(){
        System.out.println("断开Oracle");
    }
}


在主程序中定义一个有接口参数的方法,只要是实现了接口类的类的对象,都是可以传递进去的,并且会执行实现了此接口的类的对象中的con()方法和close()方法。(不需要向上转型为接口对象传入参数)(体现多态,接口引用可以指向实现了接口的类的对象)

public void t(DBcon db){
    db.con();
    db.close();
}


然后用两个类的对象分别调用

SQL sql=new SQL();
t(sql);//输出连接SQL和断开SQL
Oracle o=new Oracle();
t(o);//输出连接Oracle 和断开Oracle 


多态接口数组

//定义一个接口数组
DBcon[] cons=new DBcon[2];
//为什么能放进去这个对象,因为这个类实现了此接口
cons[0]=new SQL();
//所以可以放进去所有实现了此接口的类的对象
cons[1]=new Oracle();


打印不同对象的close方法


再调用某个对象的特有方法

for(int i=0;i<cons.Length;i++){
    cons[i].close();//动态绑定机制
    //如果想要调用数组中某个对象的特有方法
    //判断某个对象是否是相应的类对象(判断运行类型)
    if(cons[i] instanceof SQL){
        //如果是,则强制向下转型并调用方法
        ((SQL)cons[i]).open();
    }
}


多态传递


B接口继承A接口


类实现B接口,相当于也实现了A接口


super.xxx 访问父类属性....等


接口名.xxx 访问接口属性...等

目录
相关文章
|
6月前
|
存储 C++
【C++】多态(重写)的实现过程及其原理【核心知识点精讲】(22)
【C++】多态(重写)的实现过程及其原理【核心知识点精讲】(22)
【面试题精讲】接口和抽象类有什么共同点和区别?
【面试题精讲】接口和抽象类有什么共同点和区别?
|
3月前
|
安全 Java
Java基础面试十四】、 封装的目的是什么,为什么要有封装?
这篇文章讨论了封装在面向对象编程中的目的,强调封装可以隐藏类的实现细节,通过方法控制对数据的访问,保证数据完整性,并提高代码的可维护性。
Java基础面试十四】、 封装的目的是什么,为什么要有封装?
|
5月前
|
Java
接口基础知识
接口基础知识
23 1
|
5月前
|
Java
Java基础7-一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别(二)
Java基础7-一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别(二)
58 0
|
5月前
|
设计模式 Java 内存技术
Java基础7-一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别(一)
Java基础7-一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别(一)
32 0
|
设计模式 安全 C++
C++进阶 特殊类的设计
C++进阶 特殊类的设计
41 0
|
算法 网络协议 开发者
Java中抽象类和接口的区别,一文弄懂,图文并茂
Java中抽象类和接口的区别,一文弄懂,图文并茂
1702 0