本节课程将学习以下内容:
概念:
将子类的对象赋值给父类的引用。
注意:
格式:
// Student类是Person类的子类
Student s = new Student();
// 将子类的对象s赋值给父类的引用p;
// 理解:每一个学生都是一个人。
Person p = s;
1.新建一个名为Person.java的Java源文件:
class Person{
String name;
int age;
void introduce(){
System.out.println("我的名字叫 " + this.name + ",我的年龄是 " + this.age);
}
}
2.新建一个名为Student.java的Java源文件:
class Student extends Person{
int grade;
void study(){
System.out.println("我正在学习。");
}
void introduce(){
super.introduce();
System.out.println("我的年级是 " + grade);
}
}
3.新建一个名为Demo01.java的Java源文件:
class Demo01{
public static void main(String[] args) {
// 子类Student的对象stu01
Student stu01 = new Student();
// 向上转型
// 将子类的对象stu01赋值给父类的引用p1
Person p1 = stu01;
p1.name = "li4";
p1.age = 18;
// 这里的introduce()方法是子类的。
// 引用p1指向的对象是stu01,因此p1所调用的方法是stu01的方法。
p1.introduce();
}
}
概念:
将父类的对象赋值给子类的引用。
格式:
Student stu01 = new Student();
// 向上转型
Person p1 = stu01;
// 向下转型
Student stu02 = (Student)p1;
特点:
1.新建一个名为Demo01.java的Java源文件:
class Demo01{
public static void main(String[] args) {
// 子类Student的对象stu01
Student stu01 = new Student();
// 向上转型
Person p1 = stu01;
// 向下转型
Student stu02 = (Student)p1;
}
}