继承定义:子类继承父类的特征和行为,使得子类具有父类的各种属性和方法。或子类从父类继承方法,使得子类具有父类相同的行为。

多态定义看了很多,都觉得不够贴切,后来在一个同学的笔记中看到了如下的定义觉得很准确粘贴出来:

多态定义: 多态指的是子类对象可以直接复制给父类的变量(或者子类对象指向父类的引用),但运行时依然表现出子类的行为特征 这意味着同一个类型的对象在执行同一个方法时,可能会表现出不同的行为特征。

解释:类中包含了类的行为(方法)和属性(变量),而多态只是针对类的行为特征即方法的,而不针对任何的变量。(因此下面笔试题中的  ‘System.out.println(parent.i);’输出的是引用类的成员变量0)。

因此有如下结论:

总结:多态指的是成员方法,对象的成员常量不具有多态性。

在一次笔试题中遇到了一个问题:问输出结果是什么。回来试了一下,但是不知道在输出结果向上转型时i的值为什么是父类变量其中的原理,高手们请指教。

package demo.test;

//父类
class ParentClass {
public int i = 0; public void test(){
System.out.println("this is ParentClass");
} } public class SubClass extends ParentClass{
public int i = 1;
public void test(){
System.out.println("this is SubClass");
} public static void main(String[] args) {
SubClass sub1 = new SubClass();
ParentClass parent = new SubClass();
System.out.println(sub1.i);//
System.out.println(parent.i);//
sub1.test();//SubClass
parent.test();//SubClass
}
/**
* 1
0
this is SubClass
this is SubClass */
}

后来在一个同学的笔记中看到了如下的定义觉得很准确粘贴出来:

(1)多态定义: 多态指的是子类对象可以直接复制给父类的变量(或者子类对象指向父类的引用),但运行时依然表现出子类的行为特征 这意味着同一个类型的对象在执行同一个方法时,可能会表现出不同的行为特征

总结:通过上面的示例说明:继承和多态

java多态和继承的更多相关文章

  1. Java 多态 接口继承等学习笔记

    Super关键字 1.子类可以调用父类声明的构造方法 : 语法:在子类的构造方法中使用super关键字  super(参数列表) 2.操作被隐藏的成员变量(子类的成员变量和父类的成员变量重名的说法)和 ...

  2. Java中的继承和多态

    1.  什么是继承,继承的特点? 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类更具体.父类具有更 ...

  3. Java中类的继承,属性和方法的四种修饰符的作用范围,final关键字,java的三大特点中的2个:封装和多态,以及多态的一个设计模式,模板方法模式(template method)

    (一)Java中的继承: 关于继承,在Java中类的继承只能是单继承,不像C+++那样灵活,可以多继承,多继承的后果就是各种关系乱套,就相当于一个孩子有2个母亲一样,社会关系的复杂,不利于程序后期的开 ...

  4. java类的继承,多态,抽象类与接口

    知识点梳理:     1,怎样定义自己的类. MyStarFrame,MyStarPanel 类中定义: (1)属性(数据),变量. (2)方法(函数),行为. (3)构造方法(特征,作用,何时被调用 ...

  5. 【JAVA零基础入门系列】Day13 Java类的继承与多态

    继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟 ...

  6. Java动手动脑——多态和继承

    Java动手动脑——继承和多态 实验一 预估输出答案:100  200  201  202 输出结果:100  200  201  202 输出答案分析:100 创建parent类的对象,调用对象的方 ...

  7. 【Java学习笔记之十六】浅谈Java中的继承与多态

    1.  什么是继承,继承的特点? 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类更具体.父类具有更 ...

  8. Java:[面向对象:继承,多态]

    本文内容: 继承 多态 首发时期:2018-03-23 继承: 介绍: 如果多个类中存在相同的属性和行为,可以将这些内容抽取到单独一个类中,那么多个类(子类)无需再定义这些属性和行为,只要继承那个类( ...

  9. Java学习笔记——继承、接口、多态

    浮点数的运算需要注意的问题: BigDecimal operand1 = new BigDecimal("1.0"); BigDecimal operand2 = new BigD ...

随机推荐

  1. 获取一个div下的li或者img元素

    上层div的xpath=//*[@id="launchpadOptionsList"] 其下的所有li的最后一个是//*[@id="launchpadOptionsLis ...

  2. Hadoop 管理工具HUE配置-集成Unix用户和用户组

    HUE安装完成之后,第一次登录的用户就是HUE的超级用户,可以管理用户,等等.但是在用的过程发现一个问题这个用户不能管理HDFS中由supergroup创建的数据. 虽然在HUE中创建的用户可以管理自 ...

  3. 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值---部分内容可能不确切,待讨论

    1.阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 <0:出错,=0:连接关闭,>0接收到数据大小,特别:返回值  ...

  4. [UE4]限制杀人信息的显示数量

  5. [UE4]动态改变UniFormGird子控件的row属性

  6. vue的坑

    1. (vue2.x以上,1.x没有问题)vue和jq一起使用的冲突:在使用了v-bind: class的元素上,当vue和jq都需要增改class时,用jq加的属性可能无效. 原因:当数据的布尔值改 ...

  7. 《Java 程序设计》课堂实践项目 课后学习总结

    <Java 程序设计>课堂实践项目 课后学习总结 String类的使用(sort) 目录 Linux命令(sort) 课堂实践 课后思考 学习老师的代码之后的思考:int与Integer ...

  8. sas 基础(1)-关于数据格式的SAS函数

    (一)字符转换: 1)字符型转换成数值型 Numvar=INPUT(source,informat) 2)数值型转换成字符型 Chavar=PUT(source,format) (二)字符型变量的处理 ...

  9. OpenJudge Cartesian Tree

    [代码] #include <cstdio> #include <cstdlib> #include <cstring> #include <algorith ...

  10. gulp 编译es6 探究

    1.gulp配置: var gulp = require('gulp') var fs = require("fs") var babelify = require('babeli ...