java 子类继承父类成员变量的隐藏、实现方法的重写
2016-10-23 18:33
1046 查看
成员变量的隐藏和方法的重写
Goods.java
CheapGoods.java
Example5_3.java
子类对继承父类方法的重写
University.java
ImportantUniversity.java
Example5_4.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子类继承(二):隐藏成员变量和方法重写的理解
- 2018/01/07JAVA 基础 / 接口与继承:重写【子类继承并覆盖父类的对象方法】、隐藏【子类继承并覆盖父类的类方法】与实现类实现接口方法の区别
- Java编程中,子类可以用用这种方法给继承父类的成员变量赋值么?
- 子类继承父类的同时又去实现一个成员变量、方法与父类相同的接口,最后调的是谁的成员变量和方法?
- 子类重写和隐藏父类的成员方法(Overriding and Hiding Methods)
- java继承 子类重写父类方法
- C++和Java在 子类继承父类时,两者成员函数重写和重载的特性
- 关于继承时子类重写父类方法和覆盖父类变量的若干问题 (待进一步研究)
- Java 继承 父类变量, 方法 与子类的关系:
- java入门-成员变量的隐藏与方法重写(super)
- Java 中子类是否只继承父类的非私有变量和方法?
- 父类的正常成员函数子类可以使用,并不是继承下来 的,子类是怎么调用父类的函数 : 可能是利用了一种叫函数名联编的方法.没有隐藏的情况下用函数名字来决定调用的函数.
- 继承;成员变量隐藏与重写;关键字super;final类和final方法
- Java中在从父类中继承的成员变量在子类改变,怎么父类(super.num)的成员也一起改变?
- 黑马程序员1——关于Java的继承过程中成员变量与方法的隐藏与覆盖
- Java多态 实例子类自动调用父类为空的构造方法 成员变量不支持Override 可写,没多态效果
- Java 子类初始化父类的构造方法 成员变量不支持多态
- java 父类子类继承 同名变量 同名方法
- java在继承中父类的成员变量是否会被子类所覆盖
- Java中子类是否可以继承父类的static变量和方法而呈现多态特性