0

Maybe this is a very basic question because I am a newbie in Java. Here I have one abstract class and its subclass, but the subclass variable value is not changing as per my expectation. Please let me know the reason

public abstract class NameEncrypt {
    public NameEncrypt(String n) {
        encryptn(n);
    }

    public abstract void setName(String n);

    public void encryptn(String n) {
        setName(n+"dummy");
    }
}

Now one User class as a subclass. I need to modify the name property with the help of the abstract class.

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;
    }
}

The test class is given below:

public class Test {
    public static void main(String [] args){
        User user = new User("java");
        System.out.println("User clas name property is-"+user.getName());
    }
}

I expected 'javadummy' as output, but I am getting null as output. Why?

Have I misunderstand the abstract class concept?

khelwood
  • 55,782
  • 14
  • 81
  • 108
Vishnu KR
  • 718
  • 1
  • 8
  • 22

0 Answers0