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