【七】对象的转型

一个子类的对象向上转型给了一个父类的对象,父类中调用的属性和方法都是指向的子类对象的。

也就是说指向的是子类中的复写override的方法。

向上转型是不可能会失败的。

//一个引用能够调用哪些成员(变量和函数),取决于这个引用的类型
//一个引用调用的是哪一个方法,取决于这个引用所指向的对象
class Test{
    public static void main(String args []){
        //Student s = new Student();
        //Person p = s;
        Person p = new Student();//向上转型
        Student s = (Student)p;//向下转型,必须先向上转型才能向下转型,否则是错误的转型

        p.name = "zhangsan";
        p.age = 20;
        //错误的p.address = "Beijing";
        p.introduce();

    }
}
class Person{
    String name;
    int age;

    void introduce(){
        System.out.println("my name is " + name +",my age is " + age);
    }

}
class Student extends Person{
    String address;
    void study(){
        System.out.println("我正在学习");
    }
    void introduce(){
        super.introduce();
        System.out.println("我的家在"+ address);

    }
}
时间: 2024-12-12 13:46:19

【七】对象的转型的相关文章

对象的转型

对象的转型分为向上转型和向下转型 向上转型:将子类的对象赋值给父类的引用,如 Student s = new Student(); Person P = s ; Student是Person的子类(继承).首先声明了student的引用s,再同new关键字调用了构造函数生成student的对象,并把对象赋值给引用s,s指向对象.再把s赋值给Person类型的引用p class Person{ String name; void introduce(){ System.out.println("我

Java4Android基础学习之对象的转型

对象的转型可分为向上转型和向下转型 1.向上转型 1)将子类的对象赋值给父类的引用 2)一个引用能够调用哪些变量和函数,取决于这个引用的类型,如: //父类 class father{ String name; int age; } //子类 class son extends father{ String address; } 如果定义一个son类的p,则p只能调用address,因为p是son类的,而son类中只有address. 3)一个引用调用的是哪个方法,取决与这个引用所指向的对,如:

JAVA 对象的转型

/* 对象的转型: 1.对象的向上转型 子类转成父类 默认进行 父类引用指向子类对象 2.对象的向下转型 父类转成子类 强制进行 关键字:instanceof 测试左边对象是否是右边类的实例 如果是返回true 不是返回false */ class Animal{ void sleep(){ System.out.println("睡觉中"); } } class Cat extends Animal{ void catchMouse(){ System.out.println(&qu

JavaSE(五)JAVA对象向上转型和向下转型

今天做了一个测试的题目,发现自己还是很多问题没有静下心来做.很多问题是可以自己解决的但是自己一是没有读清题意,二是自己心里太急躁了.所以这个要自己应以为鉴! 对象的转型问题其实并不复杂,我们记住一句话:"父类引用指向子类对象". java中对象的转型分为向上转型和向下转型 一.对象的向上转型 1.1.定义 子类引用的对象转换为父类类型称为向上转型.通俗地说就是是将子类对象转为父类对象.此处父类对象可以是接口 1.2.解释 比如说我有两个类,一个是父类Animal,另一个是Bird类为子

5.4-全栈Java笔记:面向对象进阶之对象的转型 | FINAL关键字 |抽象方法和抽象类

对象的转型(casting) 引用变量只能调用它编译类型的方法,不能调用它运行类型的方法.这时,我们就需要进行类型的强制转换! [示例1]对象的转型 public class   TestCasting { public static void   main(String[] args) { Object obj = new   String("北京");  //向上可以自动转型 //obj.charAt(0)      //无法调用.编译器认为obj是Object类型而不是Strin

JAVA对象 向上转型upcasting,向下转型downcasting

1:向上转型 向上转型,就是java多态中的父类引用指向子类对象.但要注意的是 父类引用不可以访问子类新增加的成员(熟悉和方法) 代码举例: /** * 定义一个父类 */ public class Anaimal{ private Long height; public Long getHeight() { return height; } public void setHeight(Long height) { this.height = height; } } /** * 下面的main方

子父类中对象的转型

有2个类型: 1.向上转型:子类转化成父类,例如父类名.对象名=new 子类名();这个是默认的 2.向下转型:父类转化成子类,例如子类名.对象名=(子类名)new 父类名();这个不是默许的,必须强制性. 3.向下转型中两边的类必须是有关联的,不然是要报错的.可以instanceof判断真或者假.右边的对象.instanceof左边的类名.

java基础部分----4.对象的转型

面向对象的三个特征:封装.继承.多态 本部分是面向对象的多态性的体现 1.对象的向上转型 向上转型----将子类的对象赋值给父类的引用: Student s = new Student(); Person  p = s; 或者也可以写成 Person p = new Student(); 一个引用能够调用哪些成员(变量和函数),取决于这个应用的数据类型 一个引用调用的是哪一个方法取决于这个引用所指向的对象(调用的都是子类的成员变量和方法) 2.对象的向下转型 向下转型----将父类的对象赋值给子

java中对象的转型

1.对象的向上转型——将子类的对象赋值给父类的引用 Student s=new Student();  Person p=s; 一个引用能够调哪些成员(变量和函数),取决于这个引用的类型  也就是Person 一个引用调用的是哪一个方法取决于这个引用指向的是哪个对象 2.对象的向下转型——将父类的对象赋值给子类的引用 Student s1=new Student(); Person p=s1; Student s2=(Student)p