JAVA:一个类实现多个接口

2024-11-01 12:02:09
推荐回答(5个)
回答1:

//A接口interface A{

public int getA();

}

//B接口

interface B{

public int getB();

}

//实现了某个接口必须实现其全部的方法

public class ImpAB implements A,B{

public int getA() {

return 0;

}

public int getB() {

return 0;

}

}

扩展资料:

功能

在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。

在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。

接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。

Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。但是接口不是类,不能使用new 运算符实例化一个接口。

Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,Java接口可以有public、static和final属性。即接口中的属性可以定义为 public static final int value=5。

接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。

参考资料来源:百度百科--java接口

参考资料来源:百度百科--Java 编程语言

回答2:

abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制。它们之间区别:

接口是公开的,里面不能有私有的方法或变量,而抽象类是可以有私有方法或私有变量的;

代码演示:

接口A

public interface A {    

public abstract void play() ;   

public abstract void beFriendly(); 

}

接口B

public interface B {    

public abstract void play() ;   

public abstract void beFriendly(); 

}

一个类实现多个接口@Service("weixinPay")

public class WeixinPay implements Pay{

@Overrid

public Object pay(Map map){

return "weixinpay";

}

}

接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量;  

实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现;

接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现;

接口可以实现多重继承,而一个类只能继承一个超类;

扩展资料:

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。

功能

在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。

接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。

回答3:

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)
接口:public class x{}

1例如:public class void a implement x{实现接口方法}

2例如:

public class void b implement x{实现接口方法}同样可以实现接口X

代码演示:

接口A

public interface A {    
public abstract void play() ;   
public abstract void beFriendly(); 
}
接口B
public interface B {    
public abstract void play() ;   
public abstract void beFriendly(); 
}
一个类实现多个接口@Service("weixinPay")
public class WeixinPay implements Pay{
@Overrid
public Object pay(Map map){
return "weixinpay";
}
}



扩展资料

接口是常量值和方法定义的集合。接口是一种特殊的抽象类。

java类是单继承的。classB Extends classA

java接口可以多继承。Interface3 Extends Interface0, Interface1, interface…… 

不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。 

注意: 

1)一个类如果实现了一个借口,则要实现该接口的所有方法。

2)方法的名字、返回类型、参数必须与接口中完全一致。如果方法的返回类型不是void,则方法体必须至少有一条return语句。 

3)因为接口的方法默认是public类型的,所以在实现的时候一定要用public来修饰(否则默认为protected类型,缩小了方法的使用范围)。

回答4:

通过内部类实现接口,解决多个接口中方法重名问题

一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现。

例如下面这串代码就可以实现一个类多个接口:

interface Machine {
void run();
}

class Person {
void run() {
System.out.println("person start");
}
}

public class Android extends Person {
private class MachineHeart implements Machine {

public void run() {
System.out.println("machine start");
}
}

Machine getMachine(){
return new MachineHeart();
}
public static void main(String[] args) {
Android android=new Android();
Machine machine=android.getMachine();
machine.run();
android.run();
}
}

扩展资料

实现一个类多个接口的好处,当实现多个接口时,如果两个接口有同样的方法,那么实现一次就可以了。

以上代码可以实现编译,说明接口可以继承多个接口。为什么不能实现类的多继承,主要是防止多个类有相同的方法名,然而方法体不一样,子类就比较难选择了。

参考资料百度百科java

回答5:

//A接口
interface A{
public int getA();
}
//B接口
interface B{
public int getB();
}
//实现了某个接口必须实现其全部的方法
public class ImpAB implements A,B{

public int getA() {
return 0;
}

public int getB() {
return 0;
}
}

已经很简单的了...

呵呵....

祝楼主早日成功哈!!!