public interface Intest{
void sayHello();
}
=========================public class InterfaceTest{
public static void main(String[] args){
Test1 test1=new Test1();
Test2 test2=new Test2();
test2.sayHelloDemo();
}
}class Test1 implements Intest{
public void sayHello(){
System.out.println("Hello!!");
}
}class Test2 implements Intest{
public void sayHello(){};
public void sayHelloDemo(){
//????
}
}
请问如何编写sayHelloDemo()调用test1里的方法?或者其它什么的
void sayHello();
}
=========================public class InterfaceTest{
public static void main(String[] args){
Test1 test1=new Test1();
Test2 test2=new Test2();
test2.sayHelloDemo();
}
}class Test1 implements Intest{
public void sayHello(){
System.out.println("Hello!!");
}
}class Test2 implements Intest{
public void sayHello(){};
public void sayHelloDemo(){
//????
}
}
请问如何编写sayHelloDemo()调用test1里的方法?或者其它什么的
输入时输入类名,自动调用
Intest d = (Intest) Class.forName(args[0]).newInstance();//args[0]是你输入时候的输入的类名
1。接口根本没有用。根本没有理解接口在何种情况使用和如何使用
2。方法定义完全可以用static3。如果你要想在Test2中用Test1的那个什么什么方法。为什么不让Test2继承Test1。这样直接就可以等于super.sayHello()。然后重写Test2的sayHello方法。
void sayHello();
}
//=========================public class InterfaceTest{
public static void main(String[] args){
Test1 test1=new Test1();
Test2 test2=new Test2();
test2.sayHelloDemo();
}
}class Test1 implements Intest{
public void sayHello(){
System.out.println("Hello!!");
}
}class Test2 implements Intest{
public void sayHello(){};
public void sayHelloDemo(){
Test1 ts1 = new Test1();
ts1.sayHello();
}
}
也可以。
public void sayHello(){};
public void sayHelloDemo(){
/*Test1 ts1 = new Test1();
*ts1.sayHello();
*/
//Intest d = (Intest) Class.forName(args[0])
// .newInstance();//args[0]是你输入时候的输入的类名 Intest d = (Intest) Class.forName(Test1)
.newInstance();//args[0]是你输入时候的输入的类名}
会出现:InterfaceTest.java:30: cannot resolve symbol
symbol : variable Test1
location: class Test2
Intest d = (Intest) Class.forName(Test1)
^
1 error怎么 解决问题??
应该是:Intest d = (Intest) Class.forName("Test1");