首页 > 编程语言 >Java--面向对象--接口

Java--面向对象--接口

时间:2024-06-22 18:28:54浏览次数:12  
标签:Java -- void 接口 abstract 面向对象 方法 public 实现

接口的概念与定义

接口可以理解为抽象到不能再抽象的类,但是不要将接口和类混为一谈。可以认为类是一套体系,接口是另外一套体系,只不过类可以实现接口。

接口中的方法全部都是抽象方法,不能存在实现的方法。

接口使用interface关键字定义,接口的定义和类很相似。下面是经过简化的接口的一般形式:

access interface name {

return-type  method-name1(parameter-list);  //可以省略各种修饰符

return-type  method-name2(parameter-list);

...

return-type  method-nameN(parameter-list);

type  varname1 = value;  //可以省略各种修饰符

type  varname2 = value;

..

type  varnameN = value;

}

接口中的属性和方法

(1)接口中所有方法默认是公有的抽象方法。

隐式地标识为public、abstract,并且接口中的方法也只允许使用这两个修饰符。

注意,在抽象类中必需使用abstract关键字明确指定方法为抽象方法。

(2)在接口中所有变量默认为公有的静态常量。

被隐式地标识为public、static、final。这意味着实现接口的类不能修改它们。同时还必须初始化它们。

public  interface A1 {

//接口中的属性必须public、static、final常量

public  static  final  int  I=10;

//接口中的属性public、static、final都可以省略

int  J = 100;

//接口中的方法默认是public、abstract,所以public abstract可以省略

public  abstract  void print();

public  void  print2();

void  print3();

}

注意:

接口能new对象吗?不可以

接口能作为一种类型定义引用变量吗?  可以     A1 a;

接口的实现

一旦定义了一个接口,一个或多个类就可以实现该接口。为了实现接口,在类定义中需要包含implements子句,然后创建接口定义的方法。

class classname implements interfacename {

//

}

注意:

(1)实现接口的类,必须实现接口的所有抽象方法,如果只实现了部分抽象方法,该类必须声明为抽象类。

(2)一个类可以实现多个接口,实现的多个接口用“,”隔开

(3)实现接口的类可以同时继承一个超类,必须是先继承后实现。

public  interface A1 {

//接口中的属性必须是  public static final 常量

public static  final  int I=10;

//接口中的属性    public static final都可以省略

int J = 100;

//接口中的方法都是  public  abstract   所以public abstract可以省略

public abstract void print();

public void print2();

void print3();

}

public interface A2 {

void show();

}

/**

 * 类实现接口   使用implements

 * 类可以实现多个接口,用 , 隔开

 * 一个具体的类,实现接口,必须实现接口的所有抽象方法

 * @author Administrator

 */

public class SubA  implements A1,A2{

@Override

public void print() {

}

@Override

public void print2() {

}

@Override

public void print3() {

}

@Override

public void show() {

}

}

说明:

接口定义了一组抽象方法,实现该接口的类需要实现这些抽象方法,从而实现接口的类就具备了接口所规定的行为(功能)。

在Java中,接口可理解为对象间相互通信的协议,相当于模板。

接口的继承

接口可以通过关键字extends继承另一个接口,其语法和类继承相同。如果类实现的接口继承自另外一个接口,则该类必需实现在接口继承链中定义的所有方法。

接口的实例

实例1

public interface Shape {

double area();

void show();  //打印输出类的成员信息

void draw();  //我是XXX(矩形、圆形、三角形)

}

定义Rectangle、Circle、Triangle类,添加适当的属性,并实现Shape接口

定义测试类测试Rectangle、Circle、Triangle类。在测试类中定义一个Shape[]数组,在该数组中存储不同的形状对象。通过循环,分别调用各个对象的area()、show()、draw()方法。

实例2

public interface IntStack {

void push(int item);

int pop();

}

抽象类和接口的区别

补充:

抽象类有构造方法,接口没有构造方法

类只能单继承,接口可以多重继承接口

抽象类中可以没有抽象方法,但是有抽象方法的类必须是抽象类。

标签:Java,--,void,接口,abstract,面向对象,方法,public,实现
From: https://blog.csdn.net/weixin_68489989/article/details/139864175

相关文章

  • 【设计文档】软件详细设计说明书案例文档(word直接套用)
    一、关于本文档(一)编写目的(二)预期读者二、项目概要(一)建设背景(二)建设目标(三)建设内容三、总体设计(一)需求规定(二)设计原则1.先进性2.实用性3.规范性4.安全性5.可维护性6.可扩展性(三)平台设计思路1.全面对象化和组件化2.良好的系统架......
  • 【方案】工单系统建设方案(Word原件)
    工单管理系统建设方案1.1系统概述1.1.1需求描述1.1.2需求分析1.1.3重难点分析1.1.4重难点解决措施1.2系统架构设计1.2.1系统架构图1.2.2关键技术1.3系统功能设计1.3.1工单创建1.3.2工单管理1.3.3工单处理1.3.4工单催办1.3.5工单归档1.3.6工单统......
  • AI生成Python之语句练习题
    对应文章:Python学习记录#2、语句涉及:条件语句(if-elif-else)、循环语句(while、for)。目录练习题1.猜数字游戏2. 斐波那契数列(难)3. 九九乘法表4.列表过滤5. 字符串反转练习题1.猜数字游戏        编写一个程序,让计算机随机选择一个1到100之间的整数,......
  • Diffusion Model-DDPM
      扩散过程是一个逐渐在数据上加噪的马尔科夫链,直到最终变成一个完全的噪声。而扩散模型就是一个使用变分推断训练的参数化马尔科夫链。如上图所示。学习的是一个reverseprocess。 前提条件:1.马尔可夫性质:当前的状态只与之前一个时刻的状态有关;2.前向和反向状态服从高......
  • k8s集群搭建及对一些组件的简单理解(一)
    背景k8s的学习环境(用kubeadm方式搭建),我也搭过几次了,但都有点问题。要么在云服务器上弄,这个的问题是就只有一台轻量服务器,只能搭个单节点的;后来买了一台便宜的,所以就有了两台,但是不在一个zone,一个是广州,一个是成都,内网不通,感觉搭起来很麻烦,还没试过。要么是在本机的虚拟机上搞(vm......
  • 用verilog/systemverilog 设计fifo (2)
    目录异步fifo实现中要解决的问题信号同步到那个时钟域读写指针转化为格雷码格雷码表示的读写地址如何判断空满?异步fifoverilog代码异步fifo实现中要解决的问题异步fifo和同步fifo功能相似,但是它的读写由两个时钟信号控制,所以它的设计和同步fifo不同,需要考虑更多的因素。信号......
  • 【测试】要做的事
    python基础基本数据类型每种数据类型特点,用法简单算法多进程,具体用法测试基础测试知识点测试用例编写,几种方法服务端测试服务端测试,关注哪些指标服务端性能测试:JMeter、influxdb接口自动化:pytest客户端测试客户端测试,关注哪些指标客户端端性能测......
  • AWS ec-2基于SSH连接以及初始化指南
    概述首先我们需要先了解一下ssh的连接原理。ssh大概就是,你的本地计算机生成了一对密钥,一个叫做私钥,一个叫做公钥。然后你把你的公钥上传到远端服务器其中一个user下的.ssh文件夹中。每次ssh连接时,服务器就会看自己的公钥和你计算机的私钥能不能对的上,对的上就可以连接。而刚创......
  • NSIS 入门教程 (二)
    引言   在教程的第一部分中创建第一个安装程序后,我们还将需要删除其安装区段中已安装的文件。我们还将展示更多安装引导页面,让用户有机会选择安装的某些部分。   卸载   创建一个安装程序.可以干净的卸载,不仅是一种礼貌,对于程序的开发与发行方也有很多好处: ......
  • 红楼梦
    《红楼梦》引用前人古诗原文出处曹雪芹自己是个写诗高手,《红楼梦》中也出现了很多诗词,不过直接引用前人的诗句在总体上来看却不是很多。前八十回中直接引用的约摸也就40来处,大多出现在各种酒令场合中。在第十五回中,面如美玉的北静王和贾宝玉相见面了,他看到宝玉长得一副好模样,又......