相关文章
更多最近更新
更多java子类继承父类问题
2019-03-25 13:44|来源: 网路
java子类继承父类问题
求解释! 虽然做了几年的开发
但确实不明白为什么?
结果为什么输出的是3
可以试下~
求解释
问题补充:
看到楼下的很多朋友的回答
我之前也是这么认为的
与java得多态有关 方法可以多态重载,但属性不能
假设这样设想 我想得到结果是
在父类的属性a的值的基础上 让其用子类的加法进行呢?
如何实现呢?
就可以了
求解释! 虽然做了几年的开发
但确实不明白为什么?
class Foo { public int a; public Foo() { a = 3; } public void addFive() { a += 5; } } public class Bar extends Foo{ public int a; public Bar() { a = 8; } public void addFive() { this.a +=5; } public static void main(String[] args) { Foo foo = new Bar(); foo.addFive(); System.out.println("Value: "+ foo.a); } }
结果为什么输出的是3
可以试下~
求解释
问题补充:
看到楼下的很多朋友的回答
我之前也是这么认为的
与java得多态有关 方法可以多态重载,但属性不能
假设这样设想 我想得到结果是
在父类的属性a的值的基础上 让其用子类的加法进行呢?
如何实现呢?
public int addFive() { super.a += 5; }
就可以了
相关问答
更多-
java继承父类构造函数[2023-03-13]
父类在子类实例化之前就被实例化了,所以说子类继承过来的属性都是实例化之后的值。这话我说着比较废话,父类不实例化的话压根谈不到调用啊什么的。 但是实例化的时候,类属性只是拥有一个默认的值,比如int型的默认值就是0,所以实际用的时候可能用构造方法或者set方法再设置一遍。 父类以什么身份进入子类。这个问题,父类压根儿不进入子类,子类只是可以调用父类的属性和方法,拥有父类的特性,除此之外没什么关系了。 -
关于java中子类方法必须调用父类构造方法[2023-10-17]
在用类声明一个对象时才会调用构造方法,如果你只需调用ListAdapter这个方法,那么你把它设置成静态方法不就行了嘛,调用时直接用ListActivity.ListAdapte()。 -
java子类构造器调用父类构造器的问题[2023-09-15]
特殊规定。 你可以在子类构造器的其他部分使用 this,但是在调用父类构造器的时候使用 this 试试? 这就说明“子类构造器中第一句调用父类构造器”实际上是一个特殊的语法结构,它跟子类构造器中的其他语句是不同的部分。既然知道了它们是不同的部分,它们执行的时机不一样这种事实应该是能理解的 至于这种规定合不合理,符不符合直觉,这里就不评价了 -
java中 子类 一定要调用父类的所有构造方法吗?[2023-11-25]
不是~~但是至少应该调用一个!也可以全部调用的! 任意一个类都拥有构造器的!如果你自己没有写,系统会给你加上一个默认的,没有参数的构造器,如果你自己写了,系统不会给你加上去的! 因为继承就是要把父类的东西拿给自己,并在此基础上扩充自己! 子类在调用构造器的时候,不知道父类拥有什么,所以我们需要调用父类的构造器! 如果父类没有自己写构造器,在子类中你自己不写 super 调用构造器的时候~~系统会调用父类的默认的构造器! 你也可以自己写上想调用父类的哪一个构造器! 要关灯了~~~ 欢迎发消息继续交流! -
java子类怎么调用父类的方法[2023-11-09]
有构造函数的调用和非构造函数的调用 class A{ public A(){ } public protected void function(){ } private void function11(){ //不可被子类调用private修饰的,最低级别至少是protected } } class B extends A{ public void function2(){ function();//也可以用super.function(); } public B(){ super(); } } -
java:用子类构造器构造父类 其方法,属性是谁的?[2022-01-02]
a的方法用的是子类继承或重写的方法。 属性是父类的属性。 这是多态的范畴。也常用于接口回调等。 注意不要调用子类的新方法。 当父类是抽象类时,就可用这种构造方式得到能使用指定方法的对象。 如:Map mp = new HashMap(); -
Java中子类的构造方法调用父类构造方法的问题[2022-07-02]
没有修饰符,默认就是protected的,这种变量是能被子类访问的。 -
如果这不是家庭作业(第三方图书馆可能不被允许),我会建议Google Reflections的Reflections#getSubTypesOf() 。 Set
> subTypes = reflections.getSubTypesOf(A.class); 您可以通过自己扫描类路径来自己做更少或更多的事情,从以名称传递"" ClassLoader#getResources()开始。 If this wasn't homework (where 3rd party li ... -
子类不继承父类(Subclass not inheriting parent class)[2023-03-23]
你永远不会调用父类的__init__函数,这是定义这些属性的地方: class Manager(Employee): def __init__(self, reports): super(Manager, self).__init__() self.reports = reports 为此,您必须修改Employee类的__init__函数并为参数提供默认值: class Employee(object): def __init__(self, emp=None, name=N ... -
从文档中 ; 除了没有超类的对象之外,每个类都有且仅有一个直接超类(单继承)。 在没有任何其他显式超类的情况下,每个类都隐式地是Object的一个子类。 类可以派生自派生自类的类的类,等等,最终派生自最上面的类Object。 据说这样的一个类是从继承链中的所有类继承到对象的后代。 因此, Fillet是Food和Chicken类的后裔。 它将根据最上层类中使用的访问修饰符从其父类的超类中显式继承。 From the documentation; Excepting Object, which has no ...