新手 java 多态

c++ 的多态里面 父类函数要加virtual设置为虚函数。
java 里面是不是 不用加关键字直接重写父类函数就好了,
还有发生多态后,如果要在类的外部调用被重写的父类函数要怎么做呢

0

3个回答

第一个问题,不需要。但是可选的,可以在函数上加上@override注记。
第二个问题,反射得到基类方法,然后直接调用。这种方式打破了封装性,能用到的场景非常罕见。

0
caozhy
贵阳挖掘机马善福,自备车辆专业挖游泳池 之所以java可以实现反射,是因为一个类有什么字段、方法,一个方法有什么参数返回值之类的信息是编译在代码里的。而c++的程序没有这些元数据。
10 个月之前 回复
caozhy
贵阳挖掘机马善福,自备车辆专业挖游泳池 回复weixin_41423378: 反射就是运行时查询类型,创建对象和动态调用方法。类似mfc的rtti机制,不过后者非语法特征,而是通过宏实现的。
10 个月之前 回复
weixin_41423378
银翼的魔术师s 反射到底是干嘛的 看了半天没看懂
10 个月之前 回复

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
反射就是不需要new 拿着类的字节码文件对象,解剖它,从而获取其中的构造,成员等,进而可以调用执行。

0

如果想调用父类的方法,super.方法名就行,在覆写的过程中在子类方法名上加@override ------善知软件培训

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
新手 java 多态
c++ 的多态里面 父类函数要加virtual设置为虚函数。njava 里面是不是 不用加关键字直接重写父类函数就好了,n还有发生多态后,如果要在类的外部调用被重写的父类函数要怎么做呢
(JAVA基础)什么是多态?为什么要使用多态?
多态是为了是程序具有更好的扩展性,并可以对类进行通用的处理!那么这个是怎样体现的呢?nn我们先看一段程序:nnnpackage stduy;nnabstract class Animal{n abstract void eat();n}nnclass Dog extends Animal{n public void eat() {n System.out.println("啃骨头!");n }...
java中的静态与多态
静态的概念经常出现在java程序中,系统自带类中的大部分函数是静态函数。 n静态static可以用来修饰属性、方法、代码块。在类中static修饰的变量可以被该类创建的所有对象共同使用。 n而不用static修饰的只被单个对象使用。前者叫类属性或类方法,后者叫实例属性或实例方法。static不能定义在方法中。nnnnpublic class javabase {n static int i=...
Java多态细节与instanceof关键字
多态无继承,无多态 n多态作为OOP三大特性之一,在现实生活中,表现为一个对象可以有多种形态 nOOP语言中也就是一个对象对应着不同类型,代码的直接体现在于父类或者接口的引用指向其子类的对象n好处 n提高了代码的扩展性,前期定义的代码可以使用后期的内容n比如下面添加其他具体动物类,都可以实现eat()方法,父类引用型变量绑定通过不同的对象调用同名的不同方法n弊端 n前期定义的内容不能使用后期子类的特
java-继承和多态
 nn继承:nn继承就是保持已有类的特性而构造新类的过程。继承后,子类能够利用父类中定义的变量和方法,就像它们属于子类本身一样。nn单继承:在类层次中,子类只继承一个父类的数据结构和方法,一个类只有一个父类nn多继承:在类层次中,子类继承了多个父类的数据结构和方法,一个类允许有多个继承nn(java支持多层继承)nnn//父类npublic class file{n public long ...
Java 继承和多态
新建一个父类nnnnpublic class Animal {nn private String name;n private String color;nn public void eat () {n System.out.println("吃东西...");n }nn public String getName() {n return ...
Java多态的经典实例分析
目录nn一、多态的表现形式nn二、重载和重写的简单介绍nn1.重载(overload)nn2.重写(override)nn三、向上转型和向下转型的简单介绍nn1.向上转型nn2.向下转型nn四、在多态中方法的调用机制nn五、实例的分析nn1.继承关系nn2.new对象的分析nn3.对于方法的调用nn一、多态的表现形式nn两种nn1.方法的重载和重写nn2.对象的多态性(向上转型和向下转型)nn二、...
Java的多态(静态绑定和动态绑定)
参考资料:http://blog.csdn.net/lingzhm/article/details/44116091java多态具体表现形式有两种:方法的重写和方法的重载。先来看一段程序(此段代码摘自上述链接中):public class TestExtendsField {n public static void main(String[] args) {n Base b=ne
Java中的继承和多态知识点小结
1. final关键字可以修饰成员变量,成员方法,还可以修饰类Final’关键字的意思是最终的意思final修饰过的成员变量是一个常量,修饰过的成员方法不不允许被更改修饰过的类不能被继承总结起来就是final修饰过的就是不能被改变了.2. 面试题:final,finally,finalize的区别?final:表示最终,终态(不能被更改的)它可以修饰类,那么该类不能继承它可以修饰成员方法,成员方法...
Java 与 C++ 中的多态区别
Java 与 C++ 中的多态区别1.先看C++#include <iostream>nusing namespace std;nclass Person{npublic:int x=1,y=1;nvoid Show() {n cout << "I am a Person " <<x<<y<< endl;n }n};nclass Student:public Person{np
java方法多态,变量没有多态
执行的结果为:2   1   2  2n Father father = new Father();n Son s = new Son();n father = s;等同于Father father = new Son();由此可见变量是不会显示出多态的
Java中三种多态实现方式
1.普通类nn AnimalFu a =  new AnimalZi new();nn2.抽象类 animal  是父类抽象类nnAnimal a = new Cat();nn3.接口 // 学生是类  smoking  是接口 nnSmoking sk = new Student() nn多态的特点:nn变量:编译看父类nn方法:运行看子类...
java的参数多态与泛型
1.    类型变量:是一个无条件的标识符       泛型类:其定义中包含了类型变量2.    如果一个接口/方法声明了类型变量,则其是泛型的。3.    类型变量位于&amp;lt;&amp;gt;中,方便识别:        例如:                类型变量也是一种特殊的参数。    例1:    例2:      泛型只出现在编译阶段,运行时是没有泛型的      4.    泛型接口的两种...
java利用多态实现接口
/*n 分析:从具体到抽象n 老师和学生都会抽烟,n n 具体:老师 年龄、睡觉、工作n 学生 年龄、睡觉、工作n n 由于老师和学生都有共性提取出一个父类n n 人类:成员变量n 年龄n 成员方法n 睡觉(公共方法)n 工作(特有方法)n n 抽烟是个额外的功能,部分老师和学生可能会具有抽烟的属性,所以将其定义为接口n ...
java继承和多态的练习及自我感悟
一、实验目的:1. 理解 Java 语言是如何体现面向对象编程基本思想的;2. 掌握类的声明以及对象的创建;3. 了解类的成员变量和成员方法的特性以及类的构造方法的使用。 二、实验环境:(1)配备计算机一台 (2)计算机需安装好JDK 和eclipse  三、实验内容:(一)使用修饰符出错,public int getY() 和int y都需要定义static类型,static就是静态的意思,对象...
JAVA 多态(运行时多态和编译时多态)及其内存图解
定义:某一类事物的多种存在方式(一个对象,两种形态)nn对象的多态:父类或者接口的引用指向其子类的对象nn多态的好处:nn提高了代码的扩展性,前期定义的代码可以使用后期的内容nn多态弊端: 前期定义的内容不能使用(调用)后期子类的特有方法(就是多态调用的只能是父类)。但如果是继承子类覆盖了父类方法,多态调用的仍是子类的方法!nn多态前提:nn1、必须有关系(继承、实现)nn2、要有覆盖nn多态实际...
从Java多态到策略模式
先来复习下java多态:java多态指的是父类引用指向子类对象,不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。接下来我们再说下什么叫策略模式:将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。可能说了这么多你还没明白什么事策略模式,接下我们来举个例子 n玩过LOL的同学都知道,LOL
java多态 运行时多态和编译时多态
                                    java多态 运行时多态和编译时多态nn我们知道java的多态是一个重要的特性,其中体现java的多态有两种形式。运行时的多态和编译时的多态。nnn编译时的多态会发生在方法重载的时候,方法的重载指方法名相同,方法的参数列表不同,这样在类加载的nn时候就会加载两个方法的版本。这个过程是在编译期就是确定的,这时候我们通过不同参数调...
Java设计模式(五) 多态的极致应用——组合模式
本文介绍了组合模式的概念,UML类图,优缺点,实例讲解以及组合模式(未)遵循的OOP原则。
java多态练习题
java多态、继承练习题,包含题目与答案,............................................................................................................
java java面向对象-多态的好处
20180315 java java面向对象-多态的好处需求:给饲养员提供一个喂养动物的方法。没有多态的情况://饲养员class Person{  //喂养狗的方法  public void feed(Dog d)  {    System.out.prinyln(&quot;feeding...&quot;);  }  //喂养猫的方法  public void feed(Cat c)  {    System....
【超经典】Java多态有什么好处?怎样用?
多态可以分为变量的多态,方法的多态,类的多态.我这里强调的是类的多态,这是在以后的工作中经常会用到的。多态的表现形式有方法重载,方法改写,多态变量和泛型。重载是一种静态的多态性,在程序编译时确定被调用的方法,称为早绑定。而多态变量和改写相结合之后,方法的调用在运行时才能确定,是动态的多态性,称为晚绑定。rnrnrn首先,有这样一个系统:有个学生从兰理工毕业了,做得还不错.买了辆捷达汽车.这个系统应
Python基本语法 多态 和java 多态 --拾遗
前言:nnn最近工作因需要,过了一遍java基础。发现了一个有趣的东西。nnn正文:nnnjava中的多态跟Python中的多态是有区别的。总感觉python 中的多态多少有点牵强。java中的多态定义:n多态存在的三个必要条件n一、要有继承;n二、要有重写;三、父类引用指向子类对象。n前面都好理解,但这第三条。不能理解有木有觉得。好找到一个简单例子:nn一个完整的 代码实例:nn1.首先,创造动...
java中实现多态的机制是什么,动态多态和静态多态的区别?(java基础一)
多态总结: 指向子类的父类引用由于向上转型了,它只能访问父类中拥有的方法和属性,而对于子类中存在而父类中不存在的方法,该引用是不能使用的,尽管是重载该方法。若子类重写了父类中的某些方法,在调用该些方法的时候,必定是使用子类中定义的这些方法(动态连接、动态调用)。nn一、多态的实现nnJava实现多态有三个必要条件:继承、重写、向上转型。n继承:在多态中必须存在有继承关系的子类和父类。n 重写:子类...
对Java中继承、多态与重写的关系理解 -----Jack
    小杰作为一个刚刚入门的萌新程序猿,刚刚结束为期三周的Java教学,因时间紧迫小杰
java分享 一、论证重载是不是多态
最近看了一些书上讲的多态,发现相互之间是有冲突的,最主要的冲突是对重载是不是多态的观点,看过这些书以后,我有了自己的看法,特此写出来给大家分享:rn    一、首先我们看一下多态的定义:多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法或者属性调用在编程时不确定,而在运行期间才确定。rn    从定义来看,需要注意几点:rn        1)引用变量指向的具体类型在编程时不确
Java核心(接口、继承和多态-多态)
一、多态    利用多态可以使程序具有良好的扩展性,并可以对所有类对象进行通用的处理。    eg :定义一个平行四边形的类 Parallelogram ,在类中顶一个 draw() 方法。public class Parallelogram{n    //实例化保存平行四边形对象的数组对象n    public void draw(Parallelogram p){        //定义 dr...
java中的多态在实际开发中的作用
①可以增强代码的健壮性。只管按照父类的设计进行操作,不管具体是什么样的子类,将来这个子类用着不舒服了,换一个就行,不影响原来的代码,这样代码维护起来更加容易。 n示例代码: nclass Car { n void run () {} n}nnclass BMW extends Car{} nclass Benz extends Car{}nn实现的时候: nCar car = new BMW
Java多态实战——方法传入对象中当参数
大家都知道java中三大重要的面向对象编程特点——封装、继承、多态。nn今天我来讲讲多态:nn首先,直接上代码nnShape 类:nnnpublic class Shape {n n String name;n n public Shape(){}//最好都写一个空的构造器nn public Shape(String name) {n this.name = name;n }n n public...
java java面向对象-多态时方法的调用问题
20180315 java java面向对象-多态时方法的调用问题在多态时方法调用问题的前提是 必须存在多态情况,即子类对象赋给父类变量。存在父类:SuperClass 子类 SubClass 方法:doWork//父类class SuperClass{}//子类class SubClass extends SuperClass{}class MethodCallDemo{  public sta...
java多态经典例子
package com.carrot.core;/**n * Desc:n * Date: 2017-09-20 16:52n * Author:GooDn19H7n */nclass A {n public String show(D object) {n return "A and D";n } public String show(A object) {
java的多态及多态的三个必要条件
多态的要点:nn1.多态是方法的多态,不是属性的多态(多态与属性无关)nn2.多态存在要有3个必要条件:继承、方法重写、父类引用指向子类对象。nn3.父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。nn案例代码:nnpackage com.jackfujia.oo2;n/**n * 测试多态n * @author Administratorn *n */npublic c...
Java-面向对象编程-三大特性之多态
我们前面已经介绍了面向对象编程的三大特性之二,今天就介绍最后一个特性-多态。 n什么叫多态?从字面上理解就是多种形态,即对同一个客体,可以有多种不同的形式。就好像糖一样,有多种口味,你想吃什么口味的就可以吃什么口味。但在程序中,却不是你想要怎样就怎样。更多的是需要怎样去做就怎样去做。来一个算是比较官方的解释:在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多
Java---接口、继承与多态
目录nnnn一、类的继承nn二、Object类nn1. getclass()方法nn2. toString()方法nn3. equals()方法nn三、对象类型的转换nn四、使用instanceof操作符判断对象类型nn五、方法的重载nn定义不定长参数方法nn六、多态nn七、抽象类与接口nn1、抽象类nn2. 接口nn3. 接口与继承nn一、类的继承nn在subroutine.java中:nnn...
java中多态的个人理解
1. 是什么n多态从字面意义来说就是“多种状态”,在java中指的是允许同一函数对不同类的对象作出响应。n2. 为什么n多态能够消除方法跟类之间的耦合,具体来说就是能够把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。n3. 怎么做n实现多态有三个条件:继承、函数重写以及父类引用指向子类对象;n实现多态的技术称为动态绑
Java回顾篇——多态性深入理解。
是一个Java的编程人员就知道,在以后项目开发的时候,我们的多态性几乎天天用。rn小编和读者今天就来深究一下多态性的一些细节。rn首先我们要知道多态性的三个必要满足的条件:rn1.有继承rn2.有方法的重写rn3.有父类引用指向子类对象rn接下来我们来分析以下代码:(经典)rnpackage objectandclass;nnclass A { n public void sho
java中的对于多态的理解
面向对象:rn     类:具体的对象抽象而来,可以抽象的表示一类具有相同特征和行为的对象rn     对象:是由类的实例化而来,对象是类的一个实例rnrnrnjava中关于多态的理解rn打个比方 父亲person有行为这个方法,里面包括几个动作:吃饭,睡觉,走路 父亲有三个儿子,三个儿子都继承了父亲的行为方法,所以三个儿子都有吃饭,睡觉,走路这些动作,但是三个儿子又分别有自己的动作--大儿子A会
理解多态和RTTI
public class ChinesePerson implements Person {nn @Overriden public void say() {n // TODO Auto-generated method stubn System.out.println("i am chinese");n }n n}public class JapanPerson implements Per
Java 多态的扩展示例 数据库操作
Java 多态的扩展示例 数据库操作
Python面向对象中的多态与静态语言(C++,Java)的区别
动态语言的多态和静态语言c++等多态含义不太一样,c++中的多态就是参数数量和类型不同的方法就是不同方法,而动态语言中的多态其实值的是方法的寻找过程,即向右找到类(或者单件类),在类中找不到的话再找父类,一直在祖先链中找到或者找不到为止,先找到的就被调用:class MyClass(object):    def fn(x):        print &quot;This is the first fn&quot;...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java新手学习 java学习之多态