Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在构造函数中设置最终值_Java_Implementation_Final - Fatal编程技术网

Java 在构造函数中设置最终值

Java 在构造函数中设置最终值,java,implementation,final,Java,Implementation,Final,我有以下问题。我有两个类-一个是基类,pther继承它。因此,父类中有一个抽象类,它由三个字段组成——字符串名称、字符串地址和整数。然而,在我的任务中,它说年龄的值必须默认设置为25岁。我的问题是-如何借助继承类的构造函数中的继承方法setAge()实现这个值? 我的抽象构造函数如下所示: public Student(String name, String adress, int age){ this.setName(name); this.setAdress(adress);

我有以下问题。我有两个类-一个是基类,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.
        …

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

如果超类构造函数在其构造函数中使用三个参数,并且您的子类的构造函数只有两个参数,那么您可以调用
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.
        …

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

检查一下:只需在调用中将默认值从子类构造函数传递给
super
Student
)构造函数:
super(名称、地址,25)@Maxouille不,这不是完全重复的。这个问题增加了超类的方面。你不应该在构造函数中使用setter。您可以在子类中重写该setter以更改其行为。请检查:只需在调用中将默认值从子类构造函数传递给
super
Student
)构造函数:
super(名称、地址,25)@Maxouille不,这不是完全重复的。这个问题增加了超类的方面。你不应该在构造函数中使用setter。您可以在子类中重写该setter以更改其行为。