gpt4 book ai didi

java - 接口(interface)的使用有多种方式访问​​?

转载 作者:行者123 更新时间:2023-12-01 11:34:16 25 4
gpt4 key购买 nike

我正在学习java中的接口(interface),当我在我的子类主方法中访问它时,我可以通过三种方式访问​​这些接口(interface),这些方法有什么区别,学习者可以帮忙解决这个问题

public interface interfa
{
void educationloan();
abstract void homeloan();
static int i = 10;;

}
public class testinter implements interfa {

public static void main(String args[])
{

System.out.println("Sub class access a interface by implement");

testinter t = new testinter();
t.miniloan();
t.educationloan();
t.homeloan();

System.out.println("Super class access a only interface in sub class");

interfa a = new testinter();
a.educationloan();
//a.miniloan();
a.homeloan();

System.out.println("Annomys class access a only interface in sub class");

interfa xx = new interfa() {

@Override
public void homeloan() {
}
@Override
public void educationloan() {
// TODO Auto-generated method stub
}
};


xx.educationloan();
xx.homeloan();

}
}

我的问题来了,哪个可以在什么情况下使用,有什么区别???

最佳答案

首先,您会遇到编译时错误,因为您尚未在子类中实现接口(interface)方法。

 testinter t = new testinter();
t.miniloan();
t.educationloan(); // these methods should be initialized
t.homeloan();

现在关于您的接口(interface)实现方式:

  1. testinter t = new testinter();

t 是子类的实例,可以像常规类对象一样使用。

  • interfa a = new testinter();
  • 使用这种方法的好处是,您已经在代码中使用了引用 a n 次,并且将来您希望将接口(interface)的实现更改为 interfa a = new AnotherTestinter (); 您所要做的就是更改实现,引用不会更改。这是松散耦合,否则您必须更改代码中各处的引用a。这种方法始终称为“接口(interface)编程”。

  • 使用anonymous

    interfa xx = new interfa() { @覆盖 公共(public)无效住房贷款(){ } @覆盖 公共(public)无效教育贷款(){ //TODO 自动生成的方法 stub } };

  • 匿名类使您的代码更加简洁。它们使您能够同时声明和实例化一个类。它们就像本地类一样,只是没有名称。如果您只需要使用本地类一次,请使用它们。因此,这样做 interfa xx = new interfa() { 可以帮助您在同一位置定义方法 educationloan() homeloan()

    关于java - 接口(interface)的使用有多种方式访问​​?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30159655/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com