如果两个接口中方法的形参列表也一样的话,在调用的时候就一个方法,这个应该没什么疑问。interface A { public void fun(); } interface B { public void fun(); } class TestInterface implements A,B { public void fun() { System.out.println("方法被执行!"); }}public class Ansewer010 { public static void main(String[] args) { // TODO Auto-generated method stub TestInterface ti=new TestInterface(); ti.fun(); }}如果接口中的方法只是方法名称一样,但形参列表不同,那在实现类中此方法构成了重载,调用的是那个就是那个。package com.student.test;interface A { public void fun(); } interface B { public void fun(int x); } class TestInterface implements A,B { public void fun() { System.out.println("方法被执行!"); } public void fun(int x) { System.out.println("方法被执行!"+x); } }public class Ansewer010 { public static void main(String[] args) { // TODO Auto-generated method stub TestInterface ti=new TestInterface(); ti.fun(); ti.fun(12); }}
接口TestInterface: public interface TestInterface { public void printStr(); }接口TestInterface1: public interface TestInterface1 { public void printStr(String str); }实现类TestInterfaceImpl: public class TestInterfaceImpl implements TestInterface,TestInterface1{ public void printStr(String str) { // TODO Auto-generated method stub
} public void printStr() { // TODO Auto-generated method stub
}
} 前面是两个方法的签名是不同的,现在改成相同的。 修改interface:public interface TestInterface { public void printStr(String srt); } 现在实现类TestInterfaceImpl: public class TestInterfaceImpl implements TestInterface,TestInterface1{ public void printStr(String str) { // TODO Auto-generated method stub
}
} 建议楼主自己多做一下实验,对于程序来说做实验还是比较容易的
这个怎么看 好像转成两个接口类型都可以调得了 类似这样 ITest1 t1 = new Test(); t.func(); ITest2 t2 = new Test(); t.func();这个题他想了解什么哦 没看出来想干什么 两个接口的问题可能是如果抛出异常的时候 有可能编译过不了 比如 public interface ITest1 { public void s(String a) throws Exception; } public interface ITest2 { public void s(String a) throws NullPointerException; } public class Test implements ITest1,ITest2 { @Override public void s(String a) throws Exception { // TODO Auto-generated method stub
{
public void fun();
}
interface B
{
public void fun();
}
class TestInterface implements A,B
{
public void fun()
{
System.out.println("方法被执行!");
}}public class Ansewer010 {
public static void main(String[] args) {
// TODO Auto-generated method stub
TestInterface ti=new TestInterface();
ti.fun(); }}如果接口中的方法只是方法名称一样,但形参列表不同,那在实现类中此方法构成了重载,调用的是那个就是那个。package com.student.test;interface A
{
public void fun();
}
interface B
{
public void fun(int x);
}
class TestInterface implements A,B
{
public void fun()
{
System.out.println("方法被执行!");
}
public void fun(int x)
{
System.out.println("方法被执行!"+x);
}
}public class Ansewer010 {
public static void main(String[] args) {
// TODO Auto-generated method stub
TestInterface ti=new TestInterface();
ti.fun();
ti.fun(12); }}
public interface TestInterface {
public void printStr();
}接口TestInterface1:
public interface TestInterface1 {
public void printStr(String str);
}实现类TestInterfaceImpl:
public class TestInterfaceImpl implements TestInterface,TestInterface1{ public void printStr(String str) {
// TODO Auto-generated method stub
} public void printStr() {
// TODO Auto-generated method stub
}
}
前面是两个方法的签名是不同的,现在改成相同的。
修改interface:public interface TestInterface {
public void printStr(String srt);
}
现在实现类TestInterfaceImpl:
public class TestInterfaceImpl implements TestInterface,TestInterface1{ public void printStr(String str) {
// TODO Auto-generated method stub
}
}
建议楼主自己多做一下实验,对于程序来说做实验还是比较容易的
好像转成两个接口类型都可以调得了
类似这样
ITest1 t1 = new Test();
t.func();
ITest2 t2 = new Test();
t.func();这个题他想了解什么哦 没看出来想干什么
两个接口的问题可能是如果抛出异常的时候 有可能编译过不了 比如
public interface ITest1
{
public void s(String a) throws Exception;
}
public interface ITest2
{
public void s(String a) throws NullPointerException;
}
public class Test implements ITest1,ITest2
{ @Override
public void s(String a) throws Exception
{
// TODO Auto-generated method stub
}
}