面试时,遇到子类对父类重写,但方法参数是这样的父类:test(Parent p),子类中test(Child c).子类在调用是c.test(p),,一时难以断定是子类是否重写了父类的方法。想想参数不一样,不应该是重写;反过来,但子类也是父类啊。难以断定,算了不是复写,先碰碰运气,回去后测试一下。回来后,测试了一下,还真不是复写,对多态算是又掌握了一些。
附上测试代码
class MyParent{
int x, y;
public MyParent(int x,int y){
this.x = x;
this.y = y;
}
public void test(MyParent my){
System.out.println("-------父------");
System.out.println(my.x+"----"+my.y);
}
}
class MyChild extends MyParent{
int z;
public MyChild(int x, int y,int z) {
super(x, y);
this.z = z;
}
public void test(MyChild my){
System.out.println("-------子------");
System.out.println(my.x+"---"+my.y);
}
public static void main(String[] args) {
MyParent p = new MyParent(10, 20);
MyChild c = new MyChild(100, 200, 300);
p.test(c);
p.test(p);
c.test(c);
c.test(p);
}
结果:<!--StartFragment -->
- 大小: 7.6 KB
分享到:
相关推荐
Java 编译时多态和运行时多态 Java 编译时多态和运行时多态是 Java 语言中两个重要的概念,它们都是多态性的实现方式,但它们在实现机制和应用场景上有所不同。 编译时多态 编译时多态是指在编译期根据参数列表的...
创建多态VI在LabVIEW中的实现主要依赖于函数选板(Function Palette)上的数据类型结构(Data Type Structure)。下面将详细介绍如何在LabVIEW中创建和使用多态VI。 1. **定义多态VI的基本结构** 在LabVIEW中,一...
接着,我们来看多态的两种主要形式:编译时多态和运行时多态。编译时多态通常通过函数重载和运算符重载实现,编译器在编译阶段就能确定调用哪个函数。而运行时多态则是在程序运行时才决定调用哪个函数,这是通过虚...
在编程领域,多态(Polymorphism)是一个关键概念,尤其在面向对象编程中发挥着重要作用。多态允许我们使用一个通用的接口来处理不同类型的对象,提供了代码的灵活性和可扩展性。虚函数(Virtual Function)是实现...
多态分为编译时多态和运行时多态。编译时多态主要通过方法的重载(Overloading)实现,即在同一个类中定义多个同名但参数列表不同的方法。而运行时多态则是通过方法的重写(Overriding)和接口实现实现,它依赖于...
在编程领域,多态(Polymorphism)是面向对象编程中的一个重要概念,它允许我们用一个接口处理多种不同的数据类型。多态性使得程序更加灵活,可扩展性更强,能够提高代码的重用率。本练习案例将深入探讨多态的常见...
在Java中,多态分为编译时多态和运行时多态。编译时多态主要体现在方法的重载(Overloading),即在同一个类中可以有多个同名方法,但参数列表不同。编译器会根据传入参数的类型和数量来决定调用哪个方法。运行时...
### Java多态详解 #### 什么是多态? 多态(Polymorphism)是面向对象编程的一个核心特性,指的是一个接口可以被多个类所实现或一个类可以被多个类所继承,进而表现出不同的行为。在Java中,多态主要体现在两个...
这主要体现在两个方面:静态多态(编译时多态)和动态多态(运行时多态)。静态多态通常通过函数重载或运算符重载实现,而动态多态则依赖于接口、继承和虚函数等机制。 1. 静态多态:在编译期间就能确定调用哪个...
在C++中,多态(Polymorphism)是面向对象编程的一个核心概念,它允许我们使用一个接口来表示多种不同的类型。多态性使得代码更加灵活,可扩展性更强,可以减少代码重复,并提高代码的复用性。在这个文档中,通过两...
Java多态的讲解
在IT行业中,多态(Polymorphism)是一个核心概念,主要在面向对象编程(Object-Oriented Programming, OOP)中出现。它允许我们使用一个接口来表示多种不同的类型,从而提高了代码的灵活性、可扩展性和可重用性。在...
### Java多态经典讲解 #### 一、理解Java多态 多态,作为面向对象编程的三大特性之一,是继抽象和继承之后的关键概念。它允许我们以统一的接口处理不同类型的对象,增强了代码的灵活性和可扩展性。在Java中,多态...
封装继承多态总结
在C++编程语言中,继承和多态是面向对象编程(OOP)的两个核心概念。继承允许我们创建一个新类(子类),它继承了另一个类(父类)的属性和方法,从而实现了代码的重用和扩展。多态则是指同一种行为在不同对象上表现...
"Animal(多态练习)"这个主题,显然是为了帮助开发者理解并掌握多态这一面向对象的核心概念,同时结合设计模式的基础应用。 多态(Polymorphism)是面向对象三大特性(封装、继承、多态)之一,它允许我们使用一个...
java多态、继承练习题,包含题目与答案,............................................................................................................
国外一款多态引擎asm 作为代码变形的一项技术
java多态实现的课件,给那些需要的人 讲述了java多态的概念、分类、实现 综合案例讲解、总结多态的作用
多态性分为编译时多态和运行时多态,其中运行时多态是Java中最常见的形式,也称为动态绑定。在深入探讨Java中多态的内存分析之前,我们需要先理解一些基本概念。 首先,了解Java内存模型至关重要。Java程序运行时...