一个标准的java接口写法是怎样的?java对外接口怎么写?

本文详细介绍了Java接口的基本概念、特点、接口与抽象类的区别,以及接口的使用优势。强调接口作为方法特征集合,是实现多态和扩展的重要工具。一个标准的Java接口应包含公共的抽象方法,且不能实例化。同时,接口可以继承其他接口,并且一个类可以实现多个接口,实现多继承的效果。了解接口的最佳实践有助于提升代码的可扩展性和维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在java中,接口是一切实现方法的来源,任何实现都离开不了接口,那么,一个标准的java接口写法是怎样的呢?下面,就让小编带你一起了解一下吧。

(一)接口

1、什么是接口。

接口就是一些方法特征的集合。一些功能的定义。

比如:能被打开,能被关闭,这是定义了一些功能。把这些功能放在一起,我们称它为接口。

(可以理解为一种特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示)

(二)接口的特点:

1、接口里面的方法不能有实现(规范,标准)(像是PCI插槽一样),而且必须是public的,由实现它的类去实现(如果是private的话,那么子类就看不见,那么怎么去实现)

2. 接口不能实例化,只能用来充当子类的规则模版

3、接口中的方法默认为public,abstract,任何实现了接口的类必须重写接口的所有方法,不能少(否则当前类需要修饰为抽象类);

3、多个无关的类可以实现同一接口;(一个父类有多个子类)

4、一个类可以实现多个接口(这与单继承不一样!);

5、与继承相似,可以实现多态;

6、接口之间可以继承,而且是多继承;

(三)接口与接口之间具备扩展的概念

类------extends----->类 (只能继承一个类)

接口----extends----->接口 (可以继承多个)

接口---implements--->类 (可以实现多个接口)

(四)接口与抽象类的异同

不同点:

(1)抽象类一定要有is-a的关系,而接口没有。

(2)抽象类里面不一定都是抽象方法,接口一定是抽象方法

(3)父类的方法可重写,也可不写。但接口中定义的功能,子类一定要实现。

(4)继承是单继承,但接口是多继承,多实现

相同点:

(1)他们都可以定义变量来引用子类的对象,从而实现多态的功能。提高代码的可扩展性及维护性。

(2)他们都不能实例化, 但是类可以

优势:

1、抽象类中可以可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,提高代码的可重用性,这是抽象类的优势所在;而接口中只能包含抽象方法

由于抽象类中允许加入具体的方法,因此扩展抽象类的功能,即向抽象类中添加一个具体的方法不会对子类造成影响。而对于接口,一旦接口公布就必须非常稳定,因为随意在接口中添加抽象方法会影响到所有实现类,这些类要么实现所有新增的方法,那么声明为抽象类

2、一个类只能继承一个直接的父类,这个父类有可能是抽象类;但一个类可以实现多个接口,这是接口的优势所在

接口具体实现:

package fuxi;
/*
  (1) 编写Animal接口,接口中声明run() 方法
     (2) 定义Bird类和Fish类实现Animal接口
     (3) 编写Bird类和Fish类的测试程序,并调用其中的run()方法
 */
public class fuxi
{
    public interface Animal
    {
        void run();
    }
    class Bird implements Animal
    {
        public void run()
        {
            System.out.println("鸟不会游泳");
        }
    }
    class Fish implements Animal
    {
        public void run()
        {
            System.out.println("鱼会游泳");
        }
    }
    public fuxi()
    {
        // TODO Auto-generated constructor stub
        System.out.println("生成对象时调用构造函数");
    }
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        fuxi Fuxi = new fuxi();
        Bird bird = Fuxi.new Bird();
        bird.run();
        Fish fish = Fuxi.new Fish();
        fish.run();
    }
}

以上就是java接口的所有内容了,想了解更多相关Java入门知识,请多多关注小编哦。最后小编在学习过程中整理了一些学习资料,可以分享给做软件测试工程师的朋友们,相互交流学习,需要的可以加入我的学习交流群 164549428 或加微dingyu-003即可免费获取Python自动化测开及Java自动化测开学习资料(里面有功能测试、性能测试、python自动化、java自动化、测试开发、接口测试、APP测试等多个知识点的测试资料)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值