父类的属性变量(例如变量 int a)可以被继承,同时在子类中也会同时继承该变量(super.int a,继承的变量),子类中也可以再次声明一个同名(可以同类型)的变量(double a,自己声明的同名变量),两者可以同时存在。在输出时候根据对象的引用名输出,例如:

class Animal{

public int age; //此处在Animal中定义类型为int,名为age的变量。

public void move(){

System.out.println("动物总是不安分");

}

}

class Dog extends Animal{

public double age; //此处在Dog中定义新类型double,名为age的变量。当然int尝试也可以。

public void move(){

age =10;

System.out.println("狗跑的很快");

}

}

class Cat extends Animal{

public void move(){

super.age = 3; //此处继承age,并赋值为3.且该类中未重新定义变量。

System.out.println("猫跳的很高");

}

}

public class DuiXiang03{

public static void main(String args[]){

Animal a = new Animal(); // Animal 对象

Animal b = new Dog(); // Dog 对象

Animal c =new Cat(); //Cat 对象

Dog d= new Dog();

Cat e= new Cat();

a.move();//执行 Animal 类的方法

b.move();//执行 Dog 类的方法

c.move();//执行 Cat 类的方法

d.move();//执行Dog 类的方法

e.move();//执行 Cat 类的方法

Object aValue = a.age;

Object bValue = b.age; // b.age有两个age值,一个是自定义的age值,一个是继承的age值

Object cValue = c.age;

Object dValue = d.age; // d.age有两个age值,一个是自定义的age值,一个是继承的age值

Object eValue =e.age;

System.out.println("The type of "+a.age+" is "+(aValue instanceof Double ? "double" : (aValue instanceof Integer ? "int" : ""))); // Animal 类中的 age 未被赋值

System.out.println("The type of "+b.age+" is "+(bValue instanceof Double ? "double" : (bValue instanceof Integer ? "int" : ""))); // b.age有两个age值,输出取引用名为Animal的int类型值

System.out.println("The type of "+c.age+" is "+(cValue instanceof Double ? "double" : (cValue instanceof Integer ? "int" : ""))); // c.age只有一个age值,是super所继承的Animal中的age值,再被赋值为3

System.out.println("The type of "+d.age+" is "+(dValue instanceof Double ? "double" : (dValue instanceof Integer ? "int" : ""))); // d.age有两个age值,输出取引用名为Dog的double类型值

System.out.println("The type of "+e.age+" is "+(eValue instanceof Double ? "double" : (eValue instanceof Integer ? "int" : ""))); // c.age只有一个age值,是super所继承的Animal中的age值,再被赋值为3

}

}

输出的结果为:

动物总是不安分

狗跑的很快

猫跳的很高

狗跑的很快

猫跳的很高

The type of 0 is int

The type of 0 is int

The type of 3 is int

The type of 10.0 is double

The type of 3 is int

我是小萌新

我是小萌新

239***9370@qq.com2年前 (2018-08-30)

java 多态判断非空_Java 多态相关推荐

  1. java 多态判断非空_Java核心技术(四):继承

    本章目录: 一.类.超类和子类 1.多态 2.动态绑定 3.阻止继承:final类和方法 4.抽象类 5.访问修饰符总结 二.Object类:所有类的父类 1.equals方法 2.hashcode方 ...

  2. java 多态判断非空_Java 面试知识点解析基础知识

    文本公众号来源: 我没有三颗心脏作者: 我没有三颗心脏 (一)Java 基础知识点 1)面向对象的特性有哪些? 答:封装.继承和多态(应要多算一个那就是抽象) 封装是指将对象的实现细节隐藏起来,然后通 ...

  3. java 多态判断非空_Java多态性理解

    Java中多态性的实现 什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对 ...

  4. java 多态判断非空_收藏Java 面试题全梳理

    脚本之家 你与百万开发者在一起 来源 | Java建设者(ID:javajianshe) 作者 |cxuan 如若转载请联系原公众号 Java 基础篇 Java 有哪些特点 并发性的:你可以在其中执行 ...

  5. java 多态判断非空_重拾JavaSE基础——多态及其实现方式

    今天是比较抽象的多态,希望能给大家带来帮助 主要内容 多态 为什么使用多态 多态的形式 多态的概念 多态的劣势 多态存在的必然条件 类型转换 多态的实现原理 多态的分类 运行时多态的形式 实现原理 常 ...

  6. java 多态判断非空_跳槽涨薪季面试题之java基础(一)

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 为迎接金九银十跳槽涨薪季,小编汇总了java精编版面试题,大概从java基础.java8特性.多线程.spring.springboot. ...

  7. java 对象验证非空_判断Bean对象指定字段非空

    判断Bean对象指定字段非空. 方案: 在bean对象上增加注解,指定字段非空,返回异常信息有明确字段描述,省去不必要的if.else判断. 新建注解类 /** * 参数校验,判断字段非空.返回异常文 ...

  8. java优雅的非空判断

    字符串非空判断: lang3包下的StringUtils StringUtils.isNotBlack(str) StringUtils.isNotEmpty(str) isNotEmpty判断非空不 ...

  9. Mybatis if test 中int integer判断非空的坑

    Mybatis 中,alarmType 是int类型.如果alarmType 为0的话,条件判断返回结果为false,其它值的话,返回true. 1 <if test="alarmTy ...

最新文章

  1. linux下Vi编辑器命令大全(上)
  2. 学习笔记(十五)——MySQL(查询)
  3. selenium 鼠标悬浮_处理Selenium3+python3定位鼠标悬停才显示的元素
  4. lambda 高并发_玩Java 8 – Lambda和并发
  5. 视觉智能产品发布 阿里云这项世界第一的技术现在人人可用
  6. 数据库每日一题 2020.04.30
  7. 再不解决延迟不当,小心你的内存被打爆
  8. Table是怎样炼成的:HtmlTable
  9. 浅谈C#中的枚举 【转自http://www.cnblogs.com/liyingyi/archive/2005/12/28/306772.html】
  10. 哪个平台的身份证实名认证接口服务比较靠谱?
  11. [转]对Android开发者有益的40条优化建议
  12. 面试官:说说left join和left semi join 两者有什么区别?
  13. 【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统(如果你想,也可以在线)
  14. Js 替换字符串中全部“-”
  15. 路由器检测U盘,如果有则调用tcpdump,抓包文件到U盘
  16. C语言程序从编写到运行历经的几个阶段
  17. AG9321电路设计原理图|USB-C转HDMI双口正反插带PD3.0充电电路设计资料
  18. 如何在寒武纪MLU220-SOM上实现NTP自动校时
  19. 消息队列RabbitMQ
  20. Moveit!入门——古月居机械臂开发笔记(一)

热门文章

  1. Java类类getGenericSuperclass()方法及示例
  2. numpy zeros矩阵_零矩阵使用numpy.zeros()| 使用Python的线性代数
  3. 面试官 | Oracle JDK 和 OpenJDK 有什么区别?
  4. Stacked Hourglass Networks 人体姿态检测
  5. 蓝桥杯 标题:纵横火柴旗子
  6. 计算机的iscsi配置,我们将了解如何设置自己的支持iscsi配置的存储节点
  7. 用java编写奖金税率_企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%_java企业利润提成计算代码...
  8. python二维表转一维表_二维表格转换成一维表格
  9. java线程切换速度_为什么说线程太多,cpu切换线程会浪费很多时间?
  10. linux 查看socket fd,linux socket中select()函数以及FD_ZERO FD_SET FD_CLR FD_ISSET