繁体   English   中英

关于Java中的方法调用和继承

[英]About method call and inheritance in Java

  1. 如果我设置privategetMoney()方法,而不是public ,它不能被访问money.getMoney()在MyMoney类。

  2. 在HeMoney类中,由于HeMoney类是从Money类派生的,因此可以直接调用getMoney()而不创建Money对象。

  3. 在HeMoney类中,由于这两个类(HeMoney和SheMoney)都是从Money类派生的,所以我可以重写getSheMoney()

     public class Money { public int money = 50; public Money(int m) { money = m; } public int getMoney() { return money; } } public class MyMoney { int my; Money mymoney = new money(100); my = mymoney.getMoney(); } public class HeMoney extends Money { public int hemoney = 0 ; hemoney = getMoney(); @Override public int getSheMoney() { return hemoney; } } public class SheMoney extends Money { public int shemoney = 70; public SheMoney(int m) { shemoney = m; } public int getSheMoney() { return shemoney; } } 

由于我是初学者,所以我想知道我的知识是否正确。

  1. 我不确定说“代码外”是什么意思,但是如果您想从该类的外部访问它,则必须使用“ rectone.getArea()”,并且必须将该方法声明为public或受保护的。

  2. 还不清楚您是要“调用”还是“声明”该方法n子类。 如果要调用该方法,则无需扩展超类。 如果要声明该方法,请扩展超类并使用相同的签名进行声明。

  3. 是的。 您可以在MountainBike类中覆盖它,而与RoadBike类无关

  1. 扩展访问权限(思想1.“派生并公开”)并不总是那么优雅,可能会违反规则。
  2. 降低编译器禁止将访问级别(在子问题2中进行讨论)标记为私有的(有趣的长期讨论:Java禁止,C ++禁止)

我感觉(不清楚)过程思维问题,翻译成Java: want CALL then create object就是过程思维问题。 抱歉, I have an OBJECT and can call

是的,您的理解是正确的。

  1. 是的,您需要使对象成为从其他类调用任何方法的对象。 示例:-您有“ Person”类和其他“ Vehicle”类。此车辆具有方法ride,有人要调用ride,他首先有对象Vehicle。
  2. 当您扩展任何类的子类时,您将继承公共方法和受保护的方法。 因此,您可以在子类中直接调用它,因为它正在调用自己的方法。 现在,Other class Car扩展了Vehicle,这意味着car是车辆,因此car可以自动调用乘车。
  3. 现在有一个Train扩展Vehicle的类,如果Train希望它可以从Vehicle以其他方式骑行。 它想骑在铁轨上,所以Train可以编写自己的版本。 这称为覆盖。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM