在构造函数中设置最终值

问题描述

我有以下问题。我有两个类 - 一个是基类,pther 继承它。所以在父类中是一个抽象类,它包含三个字段 - 字符串名称、字符串地址和整数年龄。但是在我的任务中,它说年龄的值必须认设置为 25 岁。我的问题是 - 如何在继承类的构造函数中借助继承方法 setAge() 实现这个值? 我的抽象构造函数看起来像这样:

public Student(String name,String adress,int age){
    this.setName(name);
    this.setAdress(adress);
    this.setAge(age);
}

和二传手:

public void setAge(int age){
    this.age = age;
}

如何使用认值在继承的类中实现?

解决方法

如果超类构造函数在其构造函数中接受三个参数,而您的子类的构造函数只有两个参数,则可以调用 super 将两个参数加上第三个默认值传递给超类的构造函数.

public abstract class Person
{
    // Constructor
    public Person() ( String name,String address,int age ) 
    { …

和子类。

public abstract class Student
{
    // Constructor
    public Person() ( String name,String address ) 
    { 
        super( name,address,25 ) ;  // Default age of 25 for new `Student` objects.
        …

这是一个愚蠢的例子,因为在实际工作中不会发生默认一个人的年龄。但所展示的概念是合理的。