成员变量的隐藏和方法的重写

Goods.java

public class Goods {
public double weight;
public void oldSetWeight(double w) {
weight=w;
System.out.println("double型的weight="+weight);
}
public double oldGetPrice() {
double price = weight*10;
return price;
}
}

CheapGoods.java

public class CheapGoods extends Goods {
public int weight;
public void newSetWeight(int w) {
weight=w;
System.out.println("int型的weight="+weight);
}
public double newGetPrice() {
double price = weight*10;
return price;
}
}

Example5_3.java

public class Example5_3 {
public static void main(String args[]) {
CheapGoods cheapGoods=new CheapGoods();
//cheapGoods.weight=198.98; 是非法的,因为子类对象的weight已经是int型
cheapGoods.newSetWeight(198);
System.out.println("对象cheapGoods的weight的值是:"+cheapGoods.weight);
System.out.println("cheapGoods用子类新增的优惠方法计算价格:"+
cheapGoods.newGetPrice());
cheapGoods.oldSetWeight(198.987); //子类对象调用继承的方法操作隐藏的double型变量weight
System.out.println("cheapGoods使用继承的方法(无优惠)计算价格:"+
cheapGoods.oldGetPrice());
}
}

子类对继承父类方法的重写

University.java

public class University {
void enterRule(double math,double english,double chinese) {
double total=math+english+chinese;
if(total>=180)
System.out.println("考分"+total+"达到大学最低录取线");
else
System.out.println("考分"+total+"未达到大学最低录取线");
}
}

ImportantUniversity.java

public class ImportantUniversity extends University{
void enterRule(double math,double english,double chinese) {
double total=math+english+chinese;
if(total>=220)
System.out.println("考分"+total+"达到重点大学录取线");
else
System.out.println("考分"+total+"未达到重点大学录取线");
}
}

Example5_4.java

public class Example5_4 {
public static void main(String args[]) {
double math=64,english=76.5,chinese=66;
ImportantUniversity univer = new ImportantUniversity();
univer.enterRule(math,english,chinese); //调用重写的方法
math=89;
english=80;
chinese=86;
univer = new ImportantUniversity();
univer.enterRule(math,english,chinese); //调用重写的方法
}
}

java 子类继承父类成员变量的隐藏、实现方法的重写的更多相关文章

  1. Java 子类继承父类成员中的问题

    之前搞错了,变量没有“重写”一说,只有方法才能被“重写”.如果我们在子类中声明了一个和父类中一样的变量,那么实际的情况是,子类的内存堆中会有类型和名字都相同的两个变量. 现在考虑一种情况,如下所示,我 ...

  2. 成员变量的隐藏,方法的覆盖,super关键字

    成员变量的隐藏:当父类和子类有相同的成员变量时,即定义了与父类相同的成员变量时,就会发生子类对父类变量的隐藏.对于子类的对象来说,父类中的同名成员变量被隐藏起来,子类就会优先使用自己的成员变量,父类成 ...

  3. 【java】学习路线7-继承、super方法、重写、重载

    /*继承-java只有单继承如果你创建了很多个class,但是之间有很多相同的成员变量和成员方法,修改的时候又要多处修改好麻烦,此时就可以创建多一个类来存储这些重复的东西,统一管理.相当方便.*//* ...

  4. Java传递程序员变量

            解决方案虽然简单,不过若是想不起来就麻烦啦,好方法往往简单.         1.如何在一个java文件叫A里用另一个java文件叫B的方法叫method()?             ...

  5. Java基础17-成员变量、return关键字和多参方法

    1.成员变量 在类中声明的变量为成员变量 //Dog类 class Dog{ String name;//成员变量 } public class Test1{ public static void m ...

  6. Java中“==”与equals的区别以及equals方法的重写

    一.“==”与equals的区别: (1)==代表比较双方是否相同: 基本数据类型表示值相等. 引用数据类型表示地址相等,即同一个对象. (2)Object中的equals()方法:是否为同一个对象的 ...

  7. Java类成员(成员变量和方法)的覆盖与隐藏归纳

    以前就知道重写override和重载overload的区别,平时也是逮着用就是了,Eclipse报错再说. 最近看一本书里面出现了重写.替换.覆盖.置换.隐藏.重载,简直乱得不行,归纳整理一下. 从全 ...

  8. java子类对象和成员变量的隐写&方法重写

    1.子类继承的方法只能操作子类继承和隐藏的成员变量名字类新定义的方法可以操作子类继承和子类新生命的成员变量,但是无法操作子类隐藏的成员变量(需要适用super关键字操作子类隐藏的成员变量.) publ ...

  9. Java中方法的重写与成员变量的隐藏

    这篇文章讨论了Java面向对象概念中一个基本的概念–Field Hiding(隐藏成员变量) 在讨论这个问题之前,我们看一段特别特别简单的代码,请问一下方法的数据结果是什么? public class ...

随机推荐

  1. LeetCode OJ 88. Merge Sorted Array

    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:Yo ...

  2. CevaEclipse - 常用设置

    1. 往工程里面添加在硬盘上已有的文件 File -> Import.. -> General -> File System From directory Browse... 勾选需 ...

  3. 洛谷-三连击(升级版)-BOSS战-入门综合练习1

    题目描述 Description 将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成A:B:C的比例,试求出所有满足条件的三个三位数,若无解,输出“No!!!”.  输入输出格 ...

  4. Mozilla Firefox的各级版本链接

    Mozilla Firefox的各级版本链接 及语言 https://ftp.mozilla.org/pub/firefox/releases/

  5. boost log库

    http://blog.csdn.net/sheismylife/article/category/1820481

  6. 与导航栏下控件的frame相关的edgesForExtendedLayout、translucent、extendedLayoutIncludesOpaqueBars、automaticallyAdjustsScrollViewInsets等几个属性的详解

    在引入了导航控制器UINavigationController和分栏控制器UITabBarController之后,我们在设置控件的frame的时候就需要注意避开导航栏UINavigationBar ...

  7. php 分页类(3)

    <?php class Page { private $total; //总记录 private $pagesize; //每页显示多少条 private $limit; //limit pri ...

  8. spring中JdbcTemplate的使用

    一.首先JdbcTemplate有一个DataSource类型的属性,所以需要在spring的配置文件中为JdbcTemplate的实例配置dataSource属性: <!-- 导入资源文件 - ...

  9. android 属性动画

    一直再追郭霖的博客和imooc上的一些新的视频,最近有讲到属性动画. 以下内容为博客学习以及imooc上视频资料的学习笔记: 在3.0之前比较常见的动画为tween动画和frame动画: tween动 ...

  10. HDU 5348 MZL's endless loop

    乱搞题...第一直觉是混合图的欧拉通路,但是感觉并没有多大关系.最终AC的做法是不断的寻找欧拉通路,然后给边标号.所有边访问了一遍,所有点访问了一遍,效率是o(n+m).不存在-1的情况. #incl ...