JAVA:一个类实现多个接口
不用进行理论说明
例子是猫吃鱼狗吃肉也好,计算面积也好
写得多简单都没有问题
但是请务必"实现多个接口"
也麻烦必要的地方加上注释 展开
//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 编程语言
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<String, Object> map){
return "weixinpay";
}
}
接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量;
实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现;
接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现;
接口可以实现多重继承,而一个类只能继承一个超类;
扩展资料:
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。
功能
在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。
接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。
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类型,缩小了方法的使用范围)。
通过内部类实现接口,解决多个接口中方法重名问题
一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现。
例如下面这串代码就可以实现一个类多个接口:
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
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;
}
}
已经很简单的了...
呵呵....
祝楼主早日成功哈!!!