Java 为什么我们需要接口,而我们可以对类本身做同样的事情?
考虑我下面的代码,它用于使用界面预订机票Java 为什么我们需要接口,而我们可以对类本身做同样的事情?,java,Java,考虑我下面的代码,它用于使用界面预订机票 import java.io.*; interface FlightDetails { void getFlightDetails(); void book(Ticket ticket); } class AirIndia implements FlightDetails { public void getFlightDetails() { System.out.println("Flight Details
import java.io.*;
interface FlightDetails {
void getFlightDetails();
void book(Ticket ticket);
}
class AirIndia implements FlightDetails {
public void getFlightDetails() {
System.out.println("Flight Details of Air India");
}
public void book(Ticket ticket) {
System.out.println("Ticket booked in Air India");
}
}
class Emirates implements FlightDetails {
public void getFlightDetails() {
System.out.println("Flight Details of Emirates");
}
public void book(Ticket ticket) {
System.out.println("Ticket booked in Emirates");
}
}
class Lufthansa implements FlightDetails {
public void getFlightDetails() {
System.out.println("Flight Details of Lufthansa");
}
public void book(Ticket ticket) {
System.out.println("Ticket booked in Lufthansa");
}
}
class Ticket{
}
public class InterfaceFlight {
public static void main(String[] args) throws IOException {
FlightDetails flight = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("1.Air India\n2.Emirates\n3.Lufthansa");
System.out.print("Enter choice = ");
int choice = Integer.parseInt(br.readLine());
if(choice == 1){
flight = new AirIndia();
flight.book(new Ticket());
} else if(choice == 2){
flight = new Emirates();
flight.book(new Ticket());
} else if(choice == 3){
flight = new Lufthansa();
flight.book(new Ticket());
}
}
}
通过编写单独的类并为各个航班创建对象,上述实现可以在不使用接口的情况下完成 那为什么我们需要界面
提前谢谢 接口是类可以做什么的契约(或协议,或框架或共识) 当一个类实现某个接口时,它承诺为接口中声明的所有抽象方法提供实现 接口定义了一组常见的行为。类实现了与这些行为一致的接口,并为这些行为提供了它们自己的实现。这允许您在接口处编程,而不是实际实现 简言之:
类只是该契约的一个实现,没有其他任何东西毫无疑问,即使此时没有接口,您的代码也可以工作,但是。实现一个接口可以使一个类在其承诺提供的行为方面变得更加正式。接口在类和外部世界之间形成契约,编译器在构建时强制执行该契约。如果类声明实现接口,则该接口定义的所有方法必须出现在其源代码中,然后该类才能成功编译
例如,如果您有多个飞行类,每个实现飞行细节,如果稍后您想更改FLUTIONTIFY接口的结构,它可以帮助您更轻松地改变所有飞行类的结构
< P>当类实现一个接口时,它定义或重写接口的空白函数/方法。实现接口的所有类都同意定义接口的方法(如契约) 用途: 接口用于编码不同类型的类共享的相似性,但不一定构成类关系 接口的另一个用途是能够使用多重继承接口是一种工具,用于确保具有类似行为的类实现产生这些行为的必要方法。接口隐藏了类的实现细节,它还允许从不同的基类扩展类,而基类仍然遵循
接口
契约“通过编写单独的类并为各自的航班创建对象,上述实现可以在不使用接口的情况下完成“试着去做,看看是什么样子。现在想象一下,如果你需要对对象做一些工作,然后返回它,你会返回什么?接口的优势在于提供泛型类型,这是以类似的方式处理不同类型的对象的概念。这个问题的答案就在“接口”的基础上。你应该首先考虑挖掘OOP概念,现在我清楚地理解了概念。