在Java中遇到问题, 我们可以调用像
这样的类方法interface samp{
public void printMsg();
}
ClassA implements samp{
public void printMsg()
{
S.o.p("Hi ClassA");
}
}
ClassB implements samp{
public void printMsg()
{
S.o.p("Hi ClassB");
}
}
public MainClass{
public static void main(String args())
{
samp s= new ClassA();
s.printMsg();
samp s= new ClassB();
s.printMsg();
}
}
我们可以做到这一点,我有不同类型的类方法,不是所有类的类似方法但是我想实现未来是否有可能呢?是这样的任何其他模式,请帮助我找到这个。 像
ClassA{
public void fun1(){..}
public void fun2(){..}
}
ClassB{
public void fun3(){..}
public void fun4(){..}
}
想要使用单个参考来调用这些方法,需要动态地将对象asign对象才有可能是朋友吗?... 提前致谢
答案 0 :(得分:1)
你不能使用通用接口。你只能使用接口引用类型调用接口中定义的方法,即使它指向的对象属于另一个类有不同的其他方法。
答案 1 :(得分:0)
你只能调用接口中定义的那些类函数,因为它的引用只能访问那些函数。例如:
interface samp{
public void printMsg();
}
ClassA implements samp{
public void printMsg()
{
S.o.p("Hi ClassA");
}
public void newmthd(){
S.o.p("you can't call me from samp reference.");
}
}
ClassB implements samp{
public void printMsg()
{
S.o.p("Hi ClassB");
}
}
public MainClass{
public static void main(String args())
{
samp s= new ClassA();
s.printMsg();
s.newmthd() //error... s don't have any knowledge of this function.
samp s= new ClassB();
s.printMsg();
}
}
答案 2 :(得分:0)
定义您希望引用在超类中的所有方法,但保留实现为空。然后,创建子类并覆盖必要的方法。
示例:
Class MySuperClass {
public void fun1() {}
public void fun2() {}
public void fun3() {}
public void fun4() {}
}
Class ClassA extends MySuperClass {
public void fun1() { //implementation details }
public void fun2() { //implementation details }
}
Class ClassB extends MySuperClass {
public void fun3() { //implementation details }
public void fun4() { //implementation details }
}
public Class Tester {
public static void main(String[] args) {
MySuperClass class1 = new ClassA();
MySuperClass class2 = new ClassB();
}
}