美文网首页
JavaForAndroid08

JavaForAndroid08

作者: tah | 来源:发表于2018-04-24 08:58 被阅读2次

一、对象的向上转型

向上转型--将子类的对象赋值给父类的引用 向上转型.png
1、一个引用能够调用哪些成员(变量和函数),取决于这个引用的类型。

2、一个引用调用的那一个方法,取决于这个引用所指向的对象
e.g.
class Person {
String name;
int age;
void introduce() {
System.out.println("我的名字是"+name+",我的年龄是"+age);
}
}
class Student extends Person {
String address;
void study() {
System.out.println("我正在学习");
}
void introduce () {
super.introduce();
System.out.println("我的家在"+address);
}
}
class Test {
public static void main (String args []) {
//Student s = new Student();
//Person p = s;
Person p = new Student();
p.name = "张三";
p.age = 20;
//p.address = "北京"; //报错
p.introduce(); //调用子类的introduce方法
//p.study();//报错
}
}

二、对象的向下转型

向下转型--将父类的对象赋值给子类的引用 向下转型.png
先初始化一个子类对象,再将子类的引用向上转型得到一个父类的引用,再将父类的引用强制转换成子类的引用。

class Test1 {
public static void main (String args []) {
//Student s = new Student();
//Person p = s;
Person p = new Student();
Student s = (Student) p;
/*执行报错,父类的对象无法转成子类的类型
Person p = new Person();
Student s = (Student)p;
*/
}
}

相关文章

  • JavaForAndroid08

    一、对象的向上转型 2、一个引用调用的那一个方法,取决于这个引用所指向的对象e.g.class Person {S...

网友评论

      本文标题:JavaForAndroid08

      本文链接:https://www.haomeiwen.com/subject/xedhcftx.html