java中接口多重继承

直接给个例子吧:注意这两个接口的Print()是名称及参数都是一样的interfaceIFace1{voidPrint();voidHello();}interfaceI... 直接给个例子吧:
注意这两个接口的Print()是名称及参数都是一样的
interface IFace1
{
void Print();
void Hello();
}
interface IFace2
{
void Print();
void Goodbye();
}
class FacetoFace implements IFace1,IFace2
{//这里该如何实现 IFace1的Print()和 IFace2的Print()
}
以下为全部代码
调试时出现错误
interface IFace1
{
void Print();
void Hello();
}
interface IFace2
{
void Print();
void Goodbye();
}
class FacetoFace implements IFace1,IFace2
{
//IFace1
public void IFace1.Print()
{ System.out.println("这是IFace1的Print函数"); }

public void Hello()
{ // TODO: 添加 FacetoFace.Hello 实现
System.out.println("IFace1向您说Hello!");
}
//IFace2
pubic void IFace2.Print()
{
System.out.println("这是IFace2的Print函数");
}
public void Goodbye()
{
// TODO: 添加 FacetoFace.Goodbye 实现
System.out.println("IFace2向您说GoodBye");
}

}
public class Class1
{
public static void Main(string[] args)
{

}
}
展开
 我来答
568145421
推荐于2016-01-20 · 知道合伙人软件行家
568145421
知道合伙人软件行家
采纳数:1353 获赞数:6756

向TA提问 私信TA
展开全部
楼主,你好。
我们先抛开代码的重写不谈,先谈一下设计,你认为合理吗,一个类继承两个接口,两个接口中居然有一相同的方法,那么这个接口的抽象就出现问题了。所以你这个题仅仅是作为一个理论层次的讨论,实际中并不会出现。
其次,就这个问题来说,也许我们在一个实现类中确实就写了一段print()方法,结果运行确实通过了,也不报错了,但是楼主我们细想一下,我们达到目的了吗?这是我们想到的吗?答案是No,两个不同的接口,就应该有不同的业务逻辑,怎么能用一个方法去归并两个呢?那我们为什么不抽象成一个方法呢?好,这样就回到了我前面说的,属于设计问题了。
呵呵,就这样。希望楼主能看透这点,在深究不放,那就是不好啦。
淡易林孤兰
2019-05-26 · TA获得超过4009个赞
知道大有可为答主
回答量:3217
采纳率:32%
帮助的人:215万
展开全部
其实你说的多重继承就是java中所说的接口实现
如果确切的说,java只存在单继承,也就是说,一个类最多只能够有一个基类,通过extends实现。
如果想实现"多继承",就应该通过接口的形式实现,通过实现interface接口可以实现"多继承"!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6eed2f8
2011-11-05 · TA获得超过5082个赞
知道大有可为答主
回答量:3423
采纳率:0%
帮助的人:3810万
展开全部
class FacetoFace implements IFace1,IFace2 {

public void Print() {
// 就行了,如果函数一样,写一个就够了
}
}
如果处理不一样,可以分开写
class FacetoFace implements IFace1,IFace2 {

public void IFace1.Print() {}

public void IFace2.Print() {}
}
追问
我也是这样写的 
可调试时出现错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邗启3V
2011-11-05 · TA获得超过7271个赞
知道大有可为答主
回答量:1413
采纳率:100%
帮助的人:1391万
展开全部
根据你给的代码,这里只要实现一个Print()方法就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-11-05
展开全部
你这个程序都写得有问题,多看看接口,覆盖,重写的概念
更多追问追答
追问
这不就是在纠结接口时想到的嘛
代码是从网上一个C#相类似的问题上找来改的 结果不会改…><…
而想请各位帮忙把它完全改正确及弄清楚
追答
给你一个经典的例子程序,记得给我分哦 
package com.demo;

public interface TestInteface{
public void eat();
void test();
public abstract void play();
//protected abstract void sleep();
//private abstract void jump();
}
class InterfaceImpl implements TestInteface{
public void eat(){
System.out.println("吃的方法");
}

public void play(){
System.out.println("玩的方法");
}

public void test(){
System.out.println("测试方法");
}

public static void main(String args[]){
//接口类型实现类对象;
TestInteface ti = new InterfaceImpl();
System.out.println(ti);
ti.eat();
ti.play();
ti.test();
ti = new Cat();
ti.eat();
ti.play();
ti.test();
}
}
class Cat implements TestInteface{
public void eat(){
System.out.println("猫的吃方法");
}

public void play(){
System.out.println("猫的玩方法");
}

public void test(){
System.out.println("测试猫的方法");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式