【发布时间】:2015-06-27 10:06:43
【问题描述】:
我是 OOP 新手,我想在 JAVA - Android 中使用扩展类中的函数,但参数数量不同。
据我记得在 C# 中我可以做到以下几点:
主类
class Command {
protected int NrTokens
protected String cmd
protected String[] AnswerTokens
Command(String[] Tokens) {
AnswerTokens = Tokens
}
virtual int Parse()
virtual int Send()
}
并使用虚拟方法如下
class Command1 : Command{
protected int NrTokens=2;
protected String cmd="abc";
protected String AnswerTokens;
//
class ComandPing():Command(AnswerTokens);
public void Parse(){
if (AnswerTokens.size != NrTokens)
throw exception
//show on screen the status
}
Send() {
//todo
}
}
我在 Java 中这样尝试过
abstract class Command {
protected int NrTokens;
protected String cmd;
protected String[] AnswerTokens;
public void SetAnswerTokens(String Tokens[]){
AnswerTokens = Tokens;
}
abstract void Parse();
abstract void Send();
}
还有
public class Command1 extends Command {
protected int NrTokens=2;
protected String cmd="PING";
protected String AnswerTokens;
public Command1(String Tokens[]){
}
@Override
void Parse(String b){
if (AnswerTokens.length()!= NrTokens)
{
}
}
@Override
void Send(int a) {
}
问题是如果我使用参数,它不是@Overriding。我只需要来自某些子类的参数,例如 Command1、Command10,但不需要来自 Command5,我需要在不带参数的情况下调用 Send 和 Parse。
你能帮帮我吗?
【问题讨论】:
-
抱歉,您的 C++ 设计无法移植到 Java。
-
旁注:Java 命名约定与 C++ 中的不同:方法名和变量名应使用驼峰命名法(即没有首字母大写)。
-
这个问题没有一点 C++ 代码。您能否澄清前两个代码示例是用哪种语言编写的?是 C# 吗?关于语言关系,整个问题还不清楚,请改进。
-
C# 抱歉,我编辑有问题