所以,我可以在C#中创建一个简单的界面,如下所示:
public interface IAnimal {
int HumanYearAge { get; set; }
int AnimalYearAge { get; }
}
然后我可以创建一个这样的接口类:
public class Dog: IAnimal {
public int HumanYearAge;
public int AnimalYearAge
{
get { return Age * 20; }
}
}
然后在程序中,我可以在计算后实例化具有某个“HumanYearAge”和某个“AnimalYearAge”的Dog。在Java中,我发现了很多创建变量的方法,其中大部分都是这样的:
public interface myInterface {
AtomicReference<String> Name = new AtomicReference<String>("John Doe");
//Or they look something like this:
public final int Name = 0;
}
如何在Java接口内部创建一个可修改的变量,该变量可以被PASSED DOWN(当场没有分配)到一个类,当它被实例化为一个对象时,可以赋值?
答案 0 :(得分:1)
这些不是变量,而是在C#中称为属性。 它们基本上是方法(用Java术语) - 一个getter和一个setter(或者其中之一)。 我会在你的界面中添加getHumanYearAge(也许还有setHumanYearAge)方法。 实现接口的类将需要定义其主体(或它们的主体)。 你得到的东西和C#一样。这只是Java更冗长 (C#中的属性更简洁)。
答案 1 :(得分:0)
Java中的接口没有属性。你需要使用一个抽象类。
你可以有这样一个。
public abstract class Animal{
private int animalYearAge;
public Animal(int animalYearAge){
this.animalYearAge = animalYearAge;
}
public void setAnimalYearAge(int age){
this.animalYearAge = age;
}
public int getAnimalYearAge(){
return animalYearAge;
}
public abstract int getHumanYearAge();
}
然后,您可以定义这样的具体动物,例如。
public class Dog extends Animal{
public int getHumanYearAge(){
return this.getAnimalYearAge() * 7;
}
}