ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Javase——接口

2019-09-22 14:42:20  阅读:164  来源: 互联网

标签:default 接口 say 抽象 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){

}

}

标签:default,接口,say,抽象,Javase,方法,抽象类
来源: https://blog.csdn.net/luo981695830/article/details/101157074

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有