Javase——接口

接口就是规范,定义的是一组规则

接口是抽象方法和常量值定义的集合

接口的特点:

1、用interfac来定义

2、接口中的所有成员变量都默认是由public static final修饰的

3、接口中的所有抽象方法都默认是由public abstract修饰的

4、接口中没有构造器

5、接口采用多继承机制

定义java类的语法格式 险些extends 后写implements

一个类可以实现多个接口 接口也可以继承其他接口

接口的实现类必须提供接口中所有方法的具体实现内容,方可实例化

***** 接口的主要用途就是被实现类 实现 (面向接口编程)

 

与继承关系类似,接口与实现类之间存在多态性

 

接口和类是并列关系 或者可以理解为一种特殊的类

 

从本质上讲,接口是一种特殊的抽象类

这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现

 

接口和抽象类之间的对比

 

抽象类:包含抽象方法

 

构造方法、抽象方法、普通方法、常量、变量

子类继承抽象类

抽象类可以实现多个接口

模板方法

抽象类有单继承的局限

 

接口:主要是抽象方法和全局常量的集合

 

常量、抽象方法

子类实现接口

接口不能继承抽象类,但允许继承多个接口

 

 

*****在开发中,常看到一个类不是去继承一个已经实现好的类

而是要么继承抽象类,要么实现接口

---------------------------------------------------------------

1、接口的用途式用来定义现实世界不同类型事物的共同特征

2、接口中的所有方法均为抽象方法

3、

 

 

————————————————————————————

interface Inter1{

// 接口中的方法 默认被public abstract 修饰

// 有方法体的方法 必须被default或static 修饰

// 被default或static修饰的方法不再是抽象方法,必须要写方法体,且具体子类可以不用重写方法,也不再是抽象类

// 只有接口或抽象类中有抽象方法时,子类没有全部重写抽象方法,

// abstract void say(int id,String name);

public default void say() {

System.out.println("default say()....");

}

//Illegal modifier for the interface method say;

//only public, abstract, default, static and strictfp are permitted

// void say();

default void say(String name) {

System.out.println("default say(String name...");

}

static void say(int id) {

System.out.println("static say(int id)...");

}

}

// 子类继承抽象类或实现接口时,如果没有全部重写抽象方法,则子类仍为抽象类,且需要显式添加abstract

class Student implements Inter1{

private int id;

private String name;

Student(){

}

private Student(int id,String name) {

}

protected Student(String name) {

}

public Student(int id){

}

}

上一篇:idea配置springboot项目


下一篇:【转载】模拟APP弱网测试