java接口可以创建对象吗?java接口如何实现?

Java接口对于程序来说意义重大,它可以被理解为一种特殊的类,能够保护代码的安全和严密,有利于代码的规范,那java接口可以创建对象吗?下面来我们就来给大家讲解一下。

java接口可以创建对象,可以使用使用匿名方式创建对象。

例如:

File driec = new File("G:/file/test");
File[] files = driec.listFiles(new FilenameFilter()
{ //FilenameFilter是接口,创建其匿名对象
    @Override
    public boolean accept(File dir, String name)
    {
        return new File(dir, name)
            .isFile() && name.endsWith(".java");
    }
});

java接口如何实现?

接口的主要用途就是被实现类实现,一个类可以实现一个或多个接口,继承使用 extends 关键字,实现则使用 implements 关键字。因为一个类可以实现多个接口,这也是 Java 为单继承灵活性不足所作的补充。类实现接口的语法格式如下:

class[extends superclass_name] [implements interface1_name[, interface2_name…]] {

// 主体

}

对以上语法的说明如下:

public:类的修饰符;

superclass_name:需要继承的父类名称;

interface1_name:要实现的接口名称。

实现接口需要注意以下几点:

实现接口与继承父类相似,一样可以获得所实现接口里定义的常量和方法。如果一个类需要实现多个接口,则多个接口之间以逗号分隔。

一个类可以继承一个父类,并同时实现多个接口,implements 部分必须放在 extends 部分之后。

一个类实现了一个或多个接口之后,这个类必须完全实现这些接口里所定义的全部抽象方法(也就是重写这些抽象方法);否则,该类将保留从父接口那里继承到的抽象方法,该类也必须定义成抽象类。

在程序的开发中,需要完成两个数的求和运算和比较运算功能的类非常多。那么可以定义一个接口来将类似的功能组织在一起。下面创建一个示例,具体介绍接口的实现方式。

1)创建一个名称为 IMath 的接口,代码如下:

public interface IMath
{
    public int sum(); // 完成两个数的相加
    public int maxNum(int a, int b); // 获取较大的数
}

2)定义一个 MathClass 类并实现 IMath 接口,MathClass 类实现代码如下:

public class MathClass implements IMath
{
    private int num1; // 第 1 个操作数
    private int num2; // 第 2 个操作数
    public MathClass(int num1, int num2)
    {
        // 构造方法
        this.num1 = num1;
        this.num2 = num2;
    }
    // 实现接口中的求和方法
    public int sum()
    {
        return num1 + num2;
    }
    // 实现接口中的获取较大数的方法
    public int maxNum(int a, int b)
    {
        if (a >= b)
        {
            return a;
        }
        else
        {
            return b;
        }
    }
}

在实现类中,所有的方法都使用了 public 访问修饰符声明。无论何时实现一个由接口定义的方法,它都必须实现为 public,因为接口中的所有成员都显式声明为 public。

3)最后创建测试类 NumTest,实例化接口的实现类 MathClass,调用该类中的方法并输出结果。该类内容如下:

public class NumTest
{
    public static void main(String[] args)
    {
        // 创建实现类的对象
        MathClass calc = new MathClass(100, 300);
        System.out.println("100 和 300 相加结果是:" + calc.sum());
        System.out.println("100 比较 300,哪个大:" + calc.maxNum(100, 300));
    }
}

程序运行结果如下所示。

100 和 300 相加结果是:400
100 比较 300,哪个大:300

在该程序中,首先定义了一个 IMath 的接口,在该接口中只声明了两个未实现的方法,这两个方法需要在接口的实现类中实现。在实现类 MathClass 中定义了两个私有的属性,并赋予两个属性初始值,同时创建了该类的构造方法。因为该类实现了 MathClass 接口,因此必须实现接口中的方法。在最后的测试类中,需要创建实现类对象,然后通过实现类对象调用实现类中的方法。

这样就java接口就可以实现了,接口实现之后无法被实例化,但是可以被实现。最后大家如果想要了解更多初识java知识,敬请关注奇Q工具网。

推荐阅读:

springboot怎么实现自动配置?springboot默认文件如何配置?

mybatis怎么防止sql注入?mybatis么防止sql注入方法

json软件用什么打开?json怎样进行循环对象?