首页 > 其他分享 >接口

接口

时间:2024-08-07 14:16:38浏览次数:10  
标签:实现 void 接口 抽象 方法 public

接口的概念:
  • 接口是一个全部由抽象方法组成的集合,接口需要用interface定义,里面只能有抽象的方法和常量。

  • 接口体现的是事物扩展的功能,在Java中,类定义了一个实体,包括实体的属性,实体的行为。而接口定义了一个实体可能发生的动作,只有一个声明,没有具体的行为。

  • 当一个方法在很多类中有不同的体现是时候这个时候就可以将这个方法抽象出来做成一个接口。

  • 接口里面只能有不可修改的全局常量,只能有抽象的方法,接口没有构造方法

  • interface Inter{
    public static final int i=10;//全局变量前缀public static final
    public abstract void eat();//抽象的方法
    }
    
接口的特点
  • 定义接口时使用interface定义,区别于抽象类,不需要加Class。
  • &接口不能被实例化,不能直接创建对象,因为接口里只有抽象的方法,没有具体的功能。
  • 接口可以继承接口,接口要实现具体的功能必须有实现他的子类,实现接口的子类中必须重写接口全部的抽象方法。
  • 接口和接口之间可以多继承。
  • 接口的子类可以是抽象类,但是没有实际的意义。
  • 一个子类可以实现多个接口,通过implements关键字去实现。
  • 接口需要多态才能创建对象。
  • &所有接口都是抽象方法
  • &实现接口必须实现所有接口方法
  • &可以定义静态成员变量单必须用final修饰及变量值不能改变
代码示例:
interface A {
	public static final int i = 10;		//接口只能定义全局常量需要加public static final如果不加系统默认给出,推荐加。
                                                
	public abstract void eat();
}
 
interface B extends A { 		// 接口可以继承接口
	public abstract void sleep();
}
 
interface C {
	public abstract void look();
}
 
abstract class D {        //定义一个抽象类
	public void run() {
		System.out.println("跑起来");
	}
 
	public abstract void learn();
}
 
public class Text extends D implements B, C {		//一个子类可以继承一个抽象类同时实现多个接口
	//子类如果不是抽象类就必须实现所有的抽象方法
	
	public void eat() {		//实现接口A中的抽象方法
		System.out.println("吃东西");
	}
 
	public void look() {		//实现接口C中的抽象方法
		System.out.println("看风景");
	}
 
	public void sleep() {		//实现接口B中的抽象方法
		System.out.println("睡懒觉");
	}
 
	@Override
	public void learn() {	//重写抽象类D中的抽象方法
		System.out.println("学Java");
	}
 
	public static void main(String[] args) {
		B b=new Text();		//多态,接口的引用指向子类的对象
		b.eat();
		b.sleep();
		System.out.println(B.i);    //静态常量通过接口名去访问,不推荐用对象去调用
                C c=new Text();
		c.look();
		D d=new Text();	
		d.learn();
		
	}
}
/**
 * 输出为:
吃东西
睡懒觉
10
看风景
学Java
 */
Java中接口的好处:
  • 类与接口的关系,实现关系,而且是多实现(多重继承,一个类可以实现多个接口,类与类之间是继承关系,Java中的继承是单一继承,一个类只能有一个父类,打破了继承的局限性。

  • 对外提供规则(USB接口)

  • 对类提供规范或标准

  • 设计与实现相互分离:降低了程序的耦合性(可以实现模块化开发,定义好规则,每个人实现自己的模块,提高了开发的效率)。保证代码的安全性。

    接口(Interface)和多态(Polymorphism)在面向对象编程中虽然紧密相关,但它们在概念和用途上存在明显的区别:
特性 接口(Interface) 多态(Polymorphism)
定义 一组抽象方法的规范,可以包含默认方法和静态方法 允许一个引用类型指向多种实际类型的对象的能力
目的 定义系统的一部分能力或行为规范 编写通用代码,能够对不同类型的对象执行不同的操作
语法 使用 interface 关键字定义 通过方法重写(Override)和方法重载(Overload)实现
实现 一个类使用 implements 关键字实现接口 子类重写父类的方法或实现接口的方法
方法特性 接口中的方法默认是 publicabstract(Java 8之前) 可以是抽象的,也可以是具体实现的方法
构造器 接口不能有构造器 多态性不涉及构造器
类的关系 一个类可以实现多个接口 一个类可以继承自一个父类,但可以通过多态性使用父类引用操作子类对象
使用场景 定义共享行为,如 ComparableCloneable 编写可以在多种类型上执行的通用方法,如 Object 类的 equals 方法
与对象的关系 接口本身不创建对象,但可以定义与对象相关的行为 多态性允许对象以不同的形式表现,增加代码的灵活性
与继承的关系 接口通过继承扩展,一个类可以实现多个接口 多态性通过继承和接口实现,允许方法的重写
运行时行为 接口本身不涉及运行时行为,但实现接口的类必须遵循规范 运行时动态绑定,调用对象实际类型的方法
典型应用 设计模式,如命令模式、策略模式等 允许使用统一的接口处理不同类型的数据

标签:实现,void,接口,抽象,方法,public
From: https://www.cnblogs.com/lnnnkq/p/18346961

相关文章

  • Java SE核心技术——10接口
    接口就是一种规范或标准,只要符合这个标准都可以通用,接口的表现在于对行为的抽象。就好比插座,每个厂商生产的插座我们都可以用,这是因为他们有同一个标准,这里插座就是接口。//接口的定义格式与定义类的格式基本相同,将class关键字换成interface关键字,就定义了一个接口public......
  • Spring Boot 统一接口响应格式的正确姿势
    01、背景介绍熟悉web系统开发的同学可能比较熟悉,目前绝大多数的互联网软件平台基本都是前后端分离的开发模式,为了加快前后端接口对接速度,一套完善且规范的接口标准格式是非常有必要的,不仅能够提升开发效率,也会让代码看起来更加简洁、好维护。今天这篇文章,我们一起来学习一......
  • SAP PO接口报文保存到内表中
    有一个需求,接收PI传数据过来后,除整理数据保存到用户数据表外,在后期还需要把报文加工一下(要求报文内容与原接收报文一致,只是补加少量值),在发送到其它的系统。由于数据接收后已对数据加工到了用户表,已没有原报文内容(比如金额已累计),如从用户数据表中再取出数据整理加入发送出去,一是......
  • 在Python中抽象出具有相同接口的真实硬件和模拟设备
    我正在寻找一种更惯用或更简洁的OOP模式来实现与以下内容等效的功能。接口和实现fromabcimportABC,abstractmethodfromtypingimportoverrideclassDevice:"""Maininterfacethathideswhetherthedeviceisarealhardwaredeviceorasimulated......
  • 常用API_1:应用程序编程接口:String
    文章目录包packageString注意==和equals()String的对象是不可变的对象双引号""方式写出的字符串对象常用方法使用String来开发验证码代码运行结果反思包package同一个包下的程序可以直接访问访问其他包下的程序必须导包才能访问Java.lang包可以不用导,直接使用eg......
  • 接口类型的方法调用,使用匿名内部类day10
    /*接口类型的方法调用,使用匿名内部类匿名内部类:语法定义格式:new抽象类/接口(){//要重写的方法}*/interfaceInter1{voidfun1();}//classInter1ImplimplementsInter1{//@Override//publi......
  • 类,抽象类,接口作为方法参数类型的传参 day10
    /*形式参数基本类型:引用类型:类:当你看到一个类作为方法参数类型的时候,将来调用时需要传递该类及其该类的子类对象抽象类:当你看到一个抽象类作为方法的参数类型的时候,将来调用时需要传递继承该抽象类的具体子类对象......
  • 类,抽象类,接口作为方法的返回值类型 day10
    /*返回值类型基本类型:引用类型:类:当你看到一个类作为方法的返回值类型的时候,将来方法内部应该返回该类或该类的子类对象抽象类:当你看到一个抽象类作为方法的返回值类型的时候,将来方法内部应该返回继承该抽象类的具体子类对象......
  • Jmeter SHA512接口加密测试
    前言:最近,我遇到一些测试接口必须传入经过SHA512加密后的sign签名,并且签名有1小时时间限制,即签名不是一成不变超1小时就会过期,这导致在测试过程中就得频繁手工去更新签名。其实Jmeter是有提供函数去进行自动转换的,以下详解SHA512加密,可以去网上搜索SHA512在线转换 1、已知,接口......
  • C#:具体类=>抽象类=>接口的进化过程详解
    文章目录简单复习继承与多态具体类抽象类及成员使用语法接口抽象类到接口的进化简单复习继承与多态下面,我用一个交通工具的例子来快速复习一下.1.首先我定义一个基类Vehicle,代表交通工具的总称.里面定义了一个可被重写的成员方法Run.classVehicle{......