多态只适用于方法,而不适用于域。
例子来至于 thinking in java:
父对象:
public class Super {
public int field = 0;
public int getField(){
return field;
}
}
子对象:
public class Sub extends Super {
public int field = 1;
public int getField(){
return field;
}
public int getSuperField(){
return super.field;
}
}
调用:
Super sup = new Sub();
断点: System.out.println("sup.field:" + sup.field + " sup.getField():" + sup.getField());
Sub sub = new Sub();
System.out.println("sub.field:" + sub.field + " sub.getField():" + sub.getField() + " sub.getSuperField():" + sub.getSuperField());
结果:
sup.field:0 sup.getField():1
sub.field:1 sub.getField():1 sub.getSuperField():0
奇异的结果:为什么sup.field为0??
进入调试状态:检测sup对象(eclipse):
从检测结果可以看出:sup对象(Sub)有两个名为field的域(一个从super继承过来,一个是自己定义的)。
但是 ,当Sub对象转型为Super(Upcast)引用时,域访问操作都是由编译器解析,因此不是多态 。所以
sup.field:0
分享到:
相关推荐
Java基础之多态课程PPT适用于基础学习者使用,很好的课程资源
在Java编程语言中,多态性(Polymorphism)是面向对象编程的三大特性之一,另外两个是封装和继承。多态性允许我们使用一个接口来代表多种不同的类,这使得代码更加灵活,易于扩展。它主要体现在方法的多态和对象的...
Java 多态详解 Java 多态是 Java 编程语言中的一种基本概念,它允许开发者定义一个接口,并且可以通过不同的类来实现该接口。多态性是 Java 面向对象编程的核心机制之一,它使得程序更加灵活、可维护和可扩展。 ...
内含Java基础多态知识点笔记,及部分对应练习题。
非常好的Java基础视频,帮助你掌握Java基础知识 视频很清晰
本篇文章将围绕Java继承和多态机制的深入讲解,探索它们是如何促进代码的灵活性和扩展性的。 ### 继承机制 继承,作为面向对象编程的基石之一,允许我们将一个类的属性和行为传递给另一个类,从而实现代码的复用。...
Java中的多态是面向对象编程的关键特性之一,它允许一个接口或者抽象方法被多个不同的类实现,从而使得代码更加灵活且可扩展。多态的概念基于一个接口可以有多种不同的实现方式,增强了程序的多样性和适应性。 在...
Java编程语言是面向对象的,其中继承和多态是核心概念。这个压缩包"java继承、多态的简单程序.zip"显然包含了一些示例代码,旨在帮助初学者理解这两个概念。接下来,我们将深入探讨Java中的继承和多态性。 ### 继承...
本资源摘要信息将对 Java 基础知识点进行总结,涵盖继承、封装、多态等概念,并对面向对象的设计、数据库设计模式等进行讲解。 继承 继承是 Java 中的一种机制,允许一个类继承另一个类的属性和方法。继承的语法是...
### Java继承与多态知识点详解 #### 一、引言 在面向对象编程语言中,继承和多态是非常重要的概念。它们提供了强大的机制来管理代码的复杂性,并且能够有效地复用现有代码。本文将详细介绍Java中的继承和多态概念...
Java基础多态PPT教学课件.pptx
### Java零基础-多态 #### 内容概要 本文旨在深入浅出地介绍Java中的多态(Polymorphism)这一核心概念及其具体应用。读者不仅能够理解多态的基本含义,还能掌握如何在实际编程中运用多态,提高代码的灵活性和可...
### 详解Java接口、继承和多态 ...综上所述,Java中的接口、继承和多态是面向对象编程中非常重要的概念,它们为构建灵活、可扩展的系统提供了基础。理解和熟练掌握这些概念对于成为一名优秀的Java开发者至关重要。
在Java中,一个类只能单继承一个父类,但可以实现多个接口,这就是多态的基础。继承的多态性体现在父类引用指向子类对象时,调用的方法可以是子类重写过的,这样就表现出不同的行为。 2. 抽象类与接口:抽象类是不...
涵盖Java继承的基础,如关键字extends与super的使用、构造函数继承及方法重写等;还探讨了Java多态的特点,如方法重载与重写、向上转型与向下转型的应用,以及在设计模式中的具体实践。文中提供了大量的案例与代码...
多态,作为面向对象编程的三大特性之一,是继抽象和继承之后的关键概念。它允许我们以统一的接口处理不同类型的对象,增强了代码的灵活性和可扩展性。在Java中,多态主要通过两种方式体现:**向上转型**和**方法重写...
本PPT对java继承的基本概念,语法及应用进行了讲解。在继承的基础上进一步讲解了由继承引出的方法重写及上塑造性,最后引出多态的概念以及相关代码实例
Java 继承和多态是面向对象...综上所述,Java的继承和多态机制以及封装原则是构建面向对象软件的基础,它们使得代码更加模块化、易于维护和扩展。通过学习和熟练运用这些概念,开发者可以设计出高效、可复用的代码。
在这个实例中,我们将探讨四个关键概念:封装、继承、多态以及文件流操作,这些都是Java中的核心特性,也是理解OOP(面向对象编程)的基础。 首先,**封装**是面向对象编程的核心理念之一,它涉及将数据和方法捆绑...
//练习: //1.做一个教师类Teacher,有属性:1.教师号,2教师姓名, //3教师工资(基本工资,课时费,课时数)。 //有方法:1.输出教师所有信息,2.... //2....//(1)该类有以下属性:学校编号:schId, ...