`

对象的转型--向上转型

阅读更多
父类
class Person{
	String name;
	int age;
	
	void introduce(){
		System.out.println("我的名字是" + name + ",我的年龄是" + age);
	}
}

子类
class Student extends Person{
	String address;
	void talk(){
		System.out.println("hello");
	}
	
	void introduce(){
		super.introduce();
		System.out.println("我的家在" + address);
	}
}


class Test{
	public static void main(String[] args){
		Student s = new Student();
		Person p = s;
		
		p.name = "Allan";
		p.age = 20;
		//p.address = "beijing";
		p.introduce();
		//p.talk();
	}
}

p.address = "beijing";p.talk();
一个引用能够调用哪些成员(变量和函数),取决于这个引用的类型。
因为Person类中无address和talk(),所以不能调用。

p.introduce();
一个引用调用的是哪一个方法,取决于这个引用所指向的对象。
因为父类和子类都有introduce(),而父类对象p指向了子类对象s,所以调用的是子类对象的方法introduce()

Student s = new Student();Person p = s;这两句可以直接写为Person p = new Student();
分享到:
评论

相关推荐

    java向上转型向下转型

    向上转型是指将子类对象转换为父类对象,而向下转型是指将父类对象转换为子类对象。 向上转型(Upcasting) 向上转型是将子类对象转换为父类对象的过程。在 Java 中,我们可以将子类对象赋值给父类对象,这时 Java...

    java中对象转型多态抽象类接口笔记.doc

    ### Java中的对象转型与多态 #### 一、对象转型 在Java中,对象转型(Casting)是指将一个对象的引用从一个类转换到另一个类的过程。这通常发生在类的继承关系中。 ##### 向上转型(Upcasting) - **定义**:将...

    java向上转型和向下转型.doc

    在Java编程语言中,向上转型和向下转型是对象多态性的关键组成部分,它们涉及到对象的类型转换,使得程序设计更加灵活且易于维护。下面将详细解释这两种转型的概念、原理及应用。 ### 向上转型 向上转型指的是将一...

    day10 20 对象的向上转型

    day10_20_对象的向上转型

    学习Java之如何正确地向上转型与向下转型.rar

    向上转型是指将子类对象赋值给父类引用,这是一个隐式的过程,无需显式声明。例如: ```java Animal animal = new Dog(); // 向上转型 ``` 在这个例子中,虽然`animal`引用的是`Dog`实例,但它只能调用`Animal`类中...

    对象转型和多态1

    本文将深入探讨Object类、对象转型(向上转型和向下转型)以及多态的概念。 **第一节: Object类** Object类是所有Java类的基类,它位于类层次结构的根节点。这意味着,无论你创建哪个自定义类,最终都会间接地...

    java的对象引用与对象的区别、多态性理解、向上转型和向下转型、栈和堆等综合型的知识.docx

    本文将深入探讨对象引用与对象的区别、多态性、向上转型和向下转型以及栈和堆内存的管理。 首先,让我们了解对象引用与对象的区别。对象是根据类实例化出来的实体,它们在内存中的位置通常在堆区,具有实际的数据和...

    Java 向上转型和向下转型的详解

    向上转型是将子类对象转换为父类类型的过程,而向下转型是将父类对象转换为子类类型的过程。 向上转型(Upcasting) 向上转型是将子类对象转换为父类类型的过程。在 Java 中,我们可以使用子类对象来初始化父类...

    向上转型1

    向上转型是面向对象编程中的一个重要概念,主要应用于Java等支持多态特性的语言。它指的是将子类的对象赋值给父类的引用,这样就可以通过父类引用来调用子类中继承自父类的方法。在Java中,这种转换是自动的,无需...

    java的向上转型(学校教的)

    在主类中people类的声明对象分别作为Chinapeople和Americanpeople类对象的上转型对象,并让这个上转型对象调用showname方法。编写一个people类,该类有string类型的成员变量firstname和lastname来存放people对象的...

    2-Java面向对象部分--含解析.docx

    所有声明都是合法的,因为子类对象可以向上转型为父类对象,所以D选项正确。 6. **继承与方法覆盖**:在选项6的代码中,`Parent`类有一个`print`方法,`Child`类继承了`Parent`并重写了`print`方法。当创建`Parent`...

    java对象转型实例分析

    在Java编程语言中,对象转型是一种重要的概念,它允许我们改变对象的类型,以便我们可以以不同的方式使用同一个对象。在上述实例中,我们探讨了两种主要的转型方式:向上转型(upcasting)和向下转型(downcasting)...

    Java向上转型和向下转型实例解析

    向上转型是指子类对象转换为父类或接口,而向下转型是指父类对象转换为子类。了解向上转型和向下转型的机制可以帮助我们更好地理解Java中的继承机制,并且能够更好地应用继承机制来编写更加灵活和可扩展的代码。 ...

    java第05章.面向对象编程-2.pdf

    向上转型是将子类对象赋值给父类引用,而向下转型则是将父类引用赋值给子类对象,这种操作需要使用类型转换操作符。此外,多态还允许使用instanceof关键字来判断一个对象是否为特定类的实例。Java通过简单工厂模式来...

    Java 转型(向上或向下转型)详解及简单实例

    向上转型(Upcasting)是指将子类对象赋值给父类引用。在Java中,这是自动完成的,因为子类继承了父类的所有非私有属性和方法。例如,如果`B`是类`A`的子类,那么`B`对象可以被赋值给`A`类型的引用,如`A a = new B...

    289.287.JAVA基础教程_面向对象(中)-向下转型的几个常见问题(289).rar

    6. **向上转型与向下转型的区别** 上向转型是自动的,不需要显式转换,即子类对象可以赋值给父类引用,这在多态中非常常见。而向下转型是显式的,需要程序员手动进行,以获取子类的特有功能。 7. **使用接口进行...

    day005 面向对象4-接口和多态.doc

    在Java中,多态通常是通过向上转型(Upcasting)实现的,即把子类对象赋值给父类引用。这样在调用方法时,如果子类重写了父类的方法,就会执行子类的方法。 下面是一个多态的简单例子: ```java public class ...

    简单了解Java多态向上转型相关原理

    多态的概念主要体现在向上转型中,Java 允许把子类对象赋值给父类的引用变量,不用做任何强制转换,系统自动完成。 向上转型来自于自下而上的继承关系,子类继承父类,子类是一种特殊的父类,所以向上转型的操作...

    java之向上转型

    Java中的“向上转型”是指将子类对象转换为父类类型的过程。在Java中,这是一种自动转换,无需显式操作。这种转换允许我们用父类的引用去引用子类的对象,从而实现对子类功能的调用,同时保持代码的抽象性和通用性。...

    JAVA面向对象基础测试题-继承-封装-多态等测试题.docx

    ` 是合法的,因为 `p1` 和 `p3` 都是 `ClassB` 类型的对象,可以向上转型为 `ClassA` 类型。因此,正确答案是 A. `p0 = p1;`。 以上是对给定文件中涉及的面向对象基础知识的详细解析。这些知识点对于深入理解 Java ...

Global site tag (gtag.js) - Google Analytics