也许这是一个非常基本的问题,因为我是Java的新手。这里我有一个抽象类及其子类,但是子类变量值没有按照我的期望改变。请让我知道原因
public abstract class NameEncrypt {
public NameEncrypt(String n) {
encryptn(n);
}
public abstract void setName(String n);
public void encryptn(String n) {
setName(n+"dummy");
}
}
现在有一个User
类作为子类。我需要在抽象类的帮助下修改name
属性。
public class User extends NameEncrypt {
private String name=null;
public User(String name) {
super(name);
}
public String getName() {
return this.name;
}
public void setName(String n) {
System.out.println("override=="+n);
this.name=n;
}
}
测试课程如下:
public class Test {
public static void main(String [] args){
User user = new User("java");
System.out.println("User clas name property is-"+user.getName());
}
}
我期待' javadummy'作为输出,但我输出为null。为什么呢?
我是否误解了抽象类概念?