首页 > 编程语言 > 详细

Java中接口的概述及特点

时间:2021-07-10 15:55:49      阅读:14      评论:0      收藏:0      [点我收藏+]

1.接口的概述及特点

* A:接口概述

* 从狭义的角度讲就是指java中的interface

* 从广义的角度讲对外提供规则的都是接口

* B:接口的特点

* 接口用关键字interface表示

* interface 接口名{}

* 类实现接口用implements 接口名{}

* class 类名 implemts 接口名{}

* 接口不能实例化

* 那么,接口如何实例化呢?

* 按照多态的方式实例化。

* 接口的子类

* a:可以是抽象类,但是意义不大

* b:可以是具体类,但要重写接口中所有的抽象方法,(推荐方案)

* C: 案例演示

* 接口的特点

代码:

public class Demo09_polymorphic {
public static void main(String[] args) {
//Cannot instantiate the type Inter
//Inter i = new Inter();//接口不能实例化因为调用抽象方法没有意义
//按照多态的方式实例化。
Inter i = new Demo1(); // 相当于是多态,(父类引用指向子类对象)
i.print(); //编译看左边,运行看右边 成员方法

}
}

// interface 接口名 {} 创建接口的方法
interface Inter {
public abstract void print(); //接口中的方法都是抽象的
}

//b:可以是具体类,但要重写接口中所有的抽象方法,(推荐方案)
// 继承用extends 接口实现用implements
class Demo1 implements Inter {
@Override
// 重写接口print()的方法
public void print() {
System.out.println("printDemo");
}
}

2  接口的成员特点

A:接口成员特点

* 成员变量:只能是常量,并且是静态的并公共的。

* 默认修饰符:public static final---这三个单词么有顺序

* 建议:自己手动给出

* 构造方法:接口没有构造方法。

* 成员方法:只能是抽象方法。

* 默认修饰符:public abstract

* 建议:自己手动给出。

* B:案例演示

* 接口成员特点 


代码:

public class Demo6_Interface {
public static void main(String[] args) {
InterSec interSec = new DemoSec(); // 父类引用指向子类的对象
interSec.print();

}
}

interface InterSec {
//默认修饰符:public static final
public static final int num = 10; // 只能是常量 开发中建议这样写

//public Inter() {}//接口没有构造方法。Interfaces cannot have constructors
//只能是抽象方法。
/*public void print() {//Abstract methods do not specify a body
System.out.println("print");
}*/
public abstract void print(); // 抽象方法
}

class DemoSec implements InterSec { //

public void print() { // 重写抽象方法

System.out.println(num);
}
}

3. 类与类、类与接口、接口与接口之间的关系

A:类与类,类与接口,接口与接口的关系

* a:类与类:

* 继承关系,只能单继承,可以多层继承

* b:类与接口

* 实现关系,可以单实现,也可以多实现。

* 并且还可以在继承一个类的同时实现多个接口。

* c: 接口与接口:

* 继承关系,可以单继承,也可以多继承。

代码:
public class Demo7_interface {
public static void main(String[] args) {
DemoA demoA = new DemoA();
demoA.printA();
demoA.printB();
demoA.printC();
}
}


// 第一个接口
interface InterA {
public abstract void printA(); // 抽象的方法A
}

// 第二个接口
interface InterB {
public abstract void printB(); // 抽象的方法B
}

//c: 接口与接口:
interface InterC extends InterA, InterB { //可以多继承。
public abstract void printC();
}


//class Demo implements InterA,implements InterB{
//b:类与接口
class DemoA extends Object implements InterA, InterB, InterC {
// 重写接口InterA的方法
@Override
public void printA() {

System.out.println("InterA");
}

// 重写接口InterB的方法
@Override
public void printB() {

System.out.println("InterB");
}

// 重写接口InterC的方法
@Override
public void printC() {
System.out.println("InterC");
}

}

4.抽象类与接口的区别

*A:成员区别

    * 抽象类:

        * 成员变量:可以变量,也可以常量

        * 构造方法: 有

        * 成员方法:可以抽象,也可以非抽象

    * 接口:

        * 成员变量:只可以常量

        * 成员方法:只可以抽象

* B:关系区别

    * 类与类

        * 继承,单继承

    * 类与接口

        * 实现,单实现,多实现

    * 接口与接口

        * 继承,单继承,多继承

* C:设计理念区别

    * 抽象类 被继承体现的是:“is a "关系,抽象类中定义的是该继承体系的共性功能

    *  接口 被实现体现的是“is like" 的关系,接口中定义的是该继承体系的扩展功能

 

Java中接口的概述及特点

原文:https://www.cnblogs.com/LEPENGYANG/p/14993430.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!