java 子类继承父类成员变量的隐藏、实现方法的重写
成员变量的隐藏和方法的重写

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 子类继承父类成员变量的隐藏、实现方法的重写的更多相关文章
- Java 子类继承父类成员中的问题
之前搞错了,变量没有“重写”一说,只有方法才能被“重写”.如果我们在子类中声明了一个和父类中一样的变量,那么实际的情况是,子类的内存堆中会有类型和名字都相同的两个变量. 现在考虑一种情况,如下所示,我 ...
- 成员变量的隐藏,方法的覆盖,super关键字
成员变量的隐藏:当父类和子类有相同的成员变量时,即定义了与父类相同的成员变量时,就会发生子类对父类变量的隐藏.对于子类的对象来说,父类中的同名成员变量被隐藏起来,子类就会优先使用自己的成员变量,父类成 ...
- 【java】学习路线7-继承、super方法、重写、重载
/*继承-java只有单继承如果你创建了很多个class,但是之间有很多相同的成员变量和成员方法,修改的时候又要多处修改好麻烦,此时就可以创建多一个类来存储这些重复的东西,统一管理.相当方便.*//* ...
- Java传递程序员变量
解决方案虽然简单,不过若是想不起来就麻烦啦,好方法往往简单. 1.如何在一个java文件叫A里用另一个java文件叫B的方法叫method()? ...
- Java基础17-成员变量、return关键字和多参方法
1.成员变量 在类中声明的变量为成员变量 //Dog类 class Dog{ String name;//成员变量 } public class Test1{ public static void m ...
- Java中“==”与equals的区别以及equals方法的重写
一.“==”与equals的区别: (1)==代表比较双方是否相同: 基本数据类型表示值相等. 引用数据类型表示地址相等,即同一个对象. (2)Object中的equals()方法:是否为同一个对象的 ...
- Java类成员(成员变量和方法)的覆盖与隐藏归纳
以前就知道重写override和重载overload的区别,平时也是逮着用就是了,Eclipse报错再说. 最近看一本书里面出现了重写.替换.覆盖.置换.隐藏.重载,简直乱得不行,归纳整理一下. 从全 ...
- java子类对象和成员变量的隐写&方法重写
1.子类继承的方法只能操作子类继承和隐藏的成员变量名字类新定义的方法可以操作子类继承和子类新生命的成员变量,但是无法操作子类隐藏的成员变量(需要适用super关键字操作子类隐藏的成员变量.) publ ...
- Java中方法的重写与成员变量的隐藏
这篇文章讨论了Java面向对象概念中一个基本的概念–Field Hiding(隐藏成员变量) 在讨论这个问题之前,我们看一段特别特别简单的代码,请问一下方法的数据结果是什么? public class ...
随机推荐
- tomcat的事件监听
//事件涉及的三个组件:事件源.事件对象.事件监听器 //一个总的事件监听器接口,所有不同分类的事件监听器都继承这个接口 public interface EventListener {} //例如 ...
- 网页 CSS样式表
昨天,我主要是对CSS样式表进行了一下复习. CSS样式表主要有三类:内联样式表.内嵌样式表.外部样式表,我们平时一般使用第二种样式表. 选择器主要包括:标签选择器.class选择器.ID选择器.复合 ...
- tomcat安装完设定用户名和密码
vi conf/tomcat-user.xml<tomcat-users> <role rolename="manager"/> <role role ...
- Saltstack 服务器基本安装
Salt介绍 Salt是一个基础平台管理工具 Salt是一个配置管理系统,能够维护预定义状态的远程节点 Salt是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据 Salt核心功能 使命令发 ...
- 利用Ajax实现前端与.net后端实现数据交互
使用场景和需求:用户在地址栏输入请求地址,先.net服务器发送页面请求,该页面包含Echart图表,在页面中向.net后端发送数据请求,获取数据后,将数据填充到Echart图表中.其中包含带参与不带参 ...
- androidstudio--gsonformat--超爽的数据解析方式
很久以前写json解析用原始的解析json的方法,后来为了加快开发进度,开始使用gson,fastjson等第三方jar包来进行json解析,为了保持apk足够小,不因为引入jar包导致apk文件过大 ...
- HDU 3338 Kakuro Extension
网络最大流 TLE了两天的题目.80次Submit才AC,发现是刘汝佳白书的Dinic代码还可以优化.....瞬间无语..... #include<cstdio> #include< ...
- 如何将excel导入到数据库中并在gridview中显示
在页面上导入个excel文件,将该excel中的数据导入到数据库中,并且在页面的gridview中把数据显示出来. .在Asp.net中怎样将Excel文件中的数据导入到GridView中呢? 首先我 ...
- mysql命令行操作 添加字段,修改字段
alter table t_apply change column remarks(原) apply_remarks(目标) varchar(100) default '' c ...
- const放在函数前和函数后
class c { public: returnType functionName (parameter list) const; //这个函数不会修改类成员 const returnType fun ...