- 浏览: 77468 次
- 性别:
- 来自: 深圳
文章分类
最新评论
父类
子类
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();
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();
发表评论
-
151多线程(优先级&yield方法)
2015-10-28 11:16 695/* 养成习惯:数据共享用静态 */ class Dem ... -
150_多线程(Join方法)
2015-10-27 18:31 610/* join: 当A线程执行到了B线程的join方法 ... -
114_面向对象(多异常处理)_黑马程序员_Java基础视频
2015-10-25 23:27 695/* 对多异常的处理 1.生命异常时,建议声明更为具体的异 ... -
113_面向对象(异常声明throws)_黑马程序员_Java基础视频
2015-10-25 23:26 483/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
112_面向对象(异常try-catch)
2015-10-25 23:25 733/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
148_多线程(停止线程)
2015-10-25 23:16 582/* stop方法已经过时。 如何停止线程? 只有一 ... -
147_多线程(线程间通信-生产者消费者JDK5.0升级版)
2015-10-21 23:33 751/*JDK1.5及以上提供了多线程升级解决方案。 将同步Sy ... -
146_多线程(线程间通信-生产者消费者)
2015-10-20 23:35 627一个生产者一个消费者 ... -
144_多线程(线程间通信-等待唤醒机制)
2015-10-20 18:35 722class Res{ String name; Str ... -
142_多线程-线程间通信
2015-10-20 16:18 703/* 线程间通讯: 其实就是多线程在操作同一个资源。 但 ... -
141多线程-死锁
2015-10-20 14:45 694/* 死锁: 同步中嵌套同步 */ class T ... -
140_多线程(多线程-单例设计模式-懒汉式)
2015-10-19 11:45 689/* 单例设计模式 饿汉式 class Single ... -
138_多线程(多线程-同步函数的锁是this)
2015-10-15 14:48 848/* 同步函数用的是哪一个锁呢? 函数需要被对象调用。那么 ... -
137_多线程(多线程-同步函数)
2015-10-13 23:25 600/* 需求:银行有一个金库。 有两个储户分别存300元 ... -
135_多线程(多线程的安全问题)
2015-10-13 18:07 610class TWindow implements Runnab ... -
多线程(创建线程-实现Runnable接口)
2015-10-10 00:19 556class TWindow implements Runnab ... -
133_多线程(售票的例子)
2015-10-09 23:48 648/* 需求:简单的买票程序 多个窗口卖票 */ c ... -
132_多线程(获取线程对象以及名称)
2015-10-09 23:30 1218/* 练习:创建两个线程,和主线程交替运行 线程都有自 ... -
多线程-继承Thread类
2015-10-09 00:26 1563/* 进程:是一个正在执行中的程序 每一个进程执行都有一个 ... -
包的应用
2015-10-08 23:28 1666package pack; class PackageD ...
相关推荐
向上转型是指将子类对象转换为父类对象,而向下转型是指将父类对象转换为子类对象。 向上转型(Upcasting) 向上转型是将子类对象转换为父类对象的过程。在 Java 中,我们可以将子类对象赋值给父类对象,这时 Java...
### Java中的对象转型与多态 #### 一、对象转型 在Java中,对象转型(Casting)是指将一个对象的引用从一个类转换到另一个类的过程。这通常发生在类的继承关系中。 ##### 向上转型(Upcasting) - **定义**:将...
在Java编程语言中,向上转型和向下转型是对象多态性的关键组成部分,它们涉及到对象的类型转换,使得程序设计更加灵活且易于维护。下面将详细解释这两种转型的概念、原理及应用。 ### 向上转型 向上转型指的是将一...
day10_20_对象的向上转型
向上转型是指将子类对象赋值给父类引用,这是一个隐式的过程,无需显式声明。例如: ```java Animal animal = new Dog(); // 向上转型 ``` 在这个例子中,虽然`animal`引用的是`Dog`实例,但它只能调用`Animal`类中...
本文将深入探讨Object类、对象转型(向上转型和向下转型)以及多态的概念。 **第一节: Object类** Object类是所有Java类的基类,它位于类层次结构的根节点。这意味着,无论你创建哪个自定义类,最终都会间接地...
本文将深入探讨对象引用与对象的区别、多态性、向上转型和向下转型以及栈和堆内存的管理。 首先,让我们了解对象引用与对象的区别。对象是根据类实例化出来的实体,它们在内存中的位置通常在堆区,具有实际的数据和...
向上转型是将子类对象转换为父类类型的过程,而向下转型是将父类对象转换为子类类型的过程。 向上转型(Upcasting) 向上转型是将子类对象转换为父类类型的过程。在 Java 中,我们可以使用子类对象来初始化父类...
向上转型是面向对象编程中的一个重要概念,主要应用于Java等支持多态特性的语言。它指的是将子类的对象赋值给父类的引用,这样就可以通过父类引用来调用子类中继承自父类的方法。在Java中,这种转换是自动的,无需...
在主类中people类的声明对象分别作为Chinapeople和Americanpeople类对象的上转型对象,并让这个上转型对象调用showname方法。编写一个people类,该类有string类型的成员变量firstname和lastname来存放people对象的...
所有声明都是合法的,因为子类对象可以向上转型为父类对象,所以D选项正确。 6. **继承与方法覆盖**:在选项6的代码中,`Parent`类有一个`print`方法,`Child`类继承了`Parent`并重写了`print`方法。当创建`Parent`...
在Java编程语言中,对象转型是一种重要的概念,它允许我们改变对象的类型,以便我们可以以不同的方式使用同一个对象。在上述实例中,我们探讨了两种主要的转型方式:向上转型(upcasting)和向下转型(downcasting)...
向上转型是指子类对象转换为父类或接口,而向下转型是指父类对象转换为子类。了解向上转型和向下转型的机制可以帮助我们更好地理解Java中的继承机制,并且能够更好地应用继承机制来编写更加灵活和可扩展的代码。 ...
向上转型是将子类对象赋值给父类引用,而向下转型则是将父类引用赋值给子类对象,这种操作需要使用类型转换操作符。此外,多态还允许使用instanceof关键字来判断一个对象是否为特定类的实例。Java通过简单工厂模式来...
向上转型(Upcasting)是指将子类对象赋值给父类引用。在Java中,这是自动完成的,因为子类继承了父类的所有非私有属性和方法。例如,如果`B`是类`A`的子类,那么`B`对象可以被赋值给`A`类型的引用,如`A a = new B...
6. **向上转型与向下转型的区别** 上向转型是自动的,不需要显式转换,即子类对象可以赋值给父类引用,这在多态中非常常见。而向下转型是显式的,需要程序员手动进行,以获取子类的特有功能。 7. **使用接口进行...
在Java中,多态通常是通过向上转型(Upcasting)实现的,即把子类对象赋值给父类引用。这样在调用方法时,如果子类重写了父类的方法,就会执行子类的方法。 下面是一个多态的简单例子: ```java public class ...
多态的概念主要体现在向上转型中,Java 允许把子类对象赋值给父类的引用变量,不用做任何强制转换,系统自动完成。 向上转型来自于自下而上的继承关系,子类继承父类,子类是一种特殊的父类,所以向上转型的操作...
Java中的“向上转型”是指将子类对象转换为父类类型的过程。在Java中,这是一种自动转换,无需显式操作。这种转换允许我们用父类的引用去引用子类的对象,从而实现对子类功能的调用,同时保持代码的抽象性和通用性。...
` 是合法的,因为 `p1` 和 `p3` 都是 `ClassB` 类型的对象,可以向上转型为 `ClassA` 类型。因此,正确答案是 A. `p0 = p1;`。 以上是对给定文件中涉及的面向对象基础知识的详细解析。这些知识点对于深入理解 Java ...