下面是关于Java创建子类对象并调用父类变量的完整攻略:
创建子类对象并调用父类的变量设置操作
在Java中,当我们创建一个子类对象时,它会自动继承父类的所有成员变量和方法。如果我们需要对父类的成员变量进行设置,我们可以使用以下方法:
1. 使用构造函数
我们可以在子类的构造函数中调用父类的构造函数,并向其传递参数来初始化父类的成员变量。示例如下:
public class ParentClass {
protected String name;
public ParentClass(String name) {
this.name = name;
}
}
public class ChildClass extends ParentClass {
private int age;
public ChildClass(String name, int age) {
super(name); // 调用父类构造函数并传递参数
this.age = age;
}
}
在上面的示例中,我们在子类的构造函数中调用了父类的构造函数并传递了参数name
,从而初始化了父类的成员变量name
。同时,我们也初始化了子类的成员变量age
。
2. 使用setter方法
我们可以在父类中定义设置该成员变量的setter方法,然后在子类中调用该方法进行设置。示例如下:
public class ParentClass {
protected String name;
public void setName(String name) {
this.name = name;
}
}
public class ChildClass extends ParentClass {
private int age;
public void setAge(int age) {
this.age = age;
}
public void setNameAndAge(String name, int age) {
setName(name); // 调用父类的setter方法设置name
setAge(age);
}
}
在上面的示例中,我们在父类中定义了一个设置name
成员变量的setter方法。在子类中,我们定义了一个setNameAndAge
方法,该方法调用了父类的setName
方法,从而设置了父类的成员变量name
。同时,我们也通过子类的setAge
方法设置了子类的成员变量age
。
两个示例
示例 1
public class Person {
protected String name;
public Person(String name) {
this.name = name;
}
public void wakeUp() {
System.out.println(name + " wake up.");
}
}
public class Student extends Person {
private int grade;
public Student(String name, int grade) {
super(name);
this.grade = grade;
}
public void study() {
System.out.println(name + " is studying in grade " + grade + ".");
}
}
在上面的示例中,我们定义了一个Person
类和一个Student
类,Student
类继承自Person
类。 Person
类有一个name
成员变量和一个wakeUp
方法; Student
类有一个grade
成员变量和一个study
方法。我们通过在Student
类的构造函数中调用父类的构造函数来初始化父类的成员变量name
。
Student student = new Student("Alex", 5);
student.wakeUp(); // Alex wake up.
student.study(); // Alex is studying in grade 5.
上述代码中,我们创建了一个Student
对象,并调用了父类的wakeUp
方法和子类的study
方法。由于Student
类继承自Person
类,所以它可以调用父类的方法和访问父类的成员变量。
示例 2
public class Animal {
protected String name;
public Animal() {
this.name = "Unknown";
}
}
public class Dog extends Animal {
private int age;
public Dog(int age) {
super();
this.age = age;
}
public void introduce() {
System.out.println("This is " + name + ", and it is " + age + " years old.");
}
}
在上面的示例中,我们定义了一个Animal
类和一个Dog
类,Dog
类继承自Animal
类。 Animal
类有一个默认构造函数,其中name
成员变量被初始化为Unknown
;Dog
类有一个age
成员变量和一个introduce
方法。我们在Dog
类的构造函数中调用了父类的默认构造函数来初始化父类的成员变量name
。
Dog dog = new Dog(3);
dog.introduce(); // This is Unknown, and it is 3 years old.
上述代码中,我们创建了一个Dog
对象,并调用了Dog
类的introduce
方法。由于Dog
类继承自Animal
类,所以它可以访问父类的成员变量name
。同时,由于我们在子类中定义了age
成员变量,所以它也可以访问子类的成员变量age
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java创建子类对象设置并调用父类的变量操作 - Python技术站