java 重写和子类继承父类构造方法的问题。。。

class zhengfangxing{
int chang;
zhengfangxing(int long1){chang=long1;}
void show()
{
System.out.println("正方形的周长是"+(4*chang));
}
}

class changfangxing extends zhengfangxing{
int chang,kuan;
changfangxing(int long1,int k)
{ super(long1);
kuan=k;}
void show()
{
System.out.println("长方形的周长是"+(2*(chang+kuan)));
}
}

public class chongxie{
public static void main(String [] args){

zhengfangxing a=new zhengfangxing(5);
a.show();
changfangxing b=new changfangxing(5,7);
b.show();
}

}

changfangxing类中的chang无法调用父类的数据 为什么 谢谢

第1个回答  2010-03-17
System.out.println("长方形的周长是"+(2*(chang+kuan)));

这句中 chang 用的是自己类中的变量,如果要用父类中的,要改成

System.out.println("长方形的周长是"+(2*(super.chang+kuan)));
第2个回答  2010-03-17
1,2楼都是正解,坚定完毕
第3个回答  2019-11-14
子类继承父类之后只能重写父类中的protected和public方法,默认没有修饰词的是friendly,同样可以重写,但是private方法就不能重写,即使子类中的方法名和父类的private方法一致,也只能看做是一个新的方法,而不是重写。
override也就是重写,覆写
第4个回答  推荐于2016-04-20
子类中定义的属性chang与父类中的属性重名。
子类的构造函数中super(long1)并没有为子类的属性chang赋值,因此子类的对象在创建时,其属性chang都取了默认值0。
可以这样调用父类的属性:
void show() {
System.out.println("长方形的周长是" + (2 * (super.chang + kuan)));
}
第5个回答  推荐于2016-01-10
子类中定义的属性chang与父类中的属性重名。子类的构造函数中super(long1)并没有为子类的属性chang赋值,因此子类的对象在创建时,其属性chang都取了默认值0。
可以这样调用父类的属性:
void show() {
System.out.println("长方形的周长是" + (2 * (super.chang + kuan)));
}本回答被提问者采纳

JAVA中 子类与父类构造方法的关系 个人理解
一、父类含有无参构造函数 1、子类没有构造方法或者含有无参的构造方法:这种情况,都会默认地调用super()2、子类含有有参数构造方法:同样会在首句默认调用super() \/\/其实跟情况1类似 二、父类含有含参数的构造方法,不含无参数的构造方法:子类没得选择:子类必须申明一个构造方法(且含super...

java关于子类和父类构造方法的关系,犯迷糊!!
1、父类中没有显式定义任何构造方法,此时父类中实际有一个默认的无参数构造方法。这时,在子类中显式定义任何构造方法时,可以不用使用super调用父类的默认方法。2、父类中显式定义了默认的无参数构造方法,那么子类可以定义任意的构造方法,而不必使用super调用父类的构造方法 3、父类中显示定义了构...

java 子类重写了一个方法,如何在父类中调用?
java子类继承父类、方法的重写(覆盖)在程序中,如果想声明一个类继承另一个类,需要使用extends关键字。格式:class子类 extends父类

java中子类能不能继承父类构造方法
子类可以继承父类的构造方法,并遵循以下原则: 1、子类无条件的继承父类的无参构造方法。 2、子类自身没有定义构造方法,继承父类的无参构造方法,作为构造方法;子类自身定义了无参构造方法。

java中子类如何继承父类的含参数的构造方法
子类的构造函数中 用super(参数类型 参数);同时子类的构造函数本身的参数列表要和父类的匹配

Java学习:继承方法重写Override
Java中的继承机制允许子类继承父类属性和方法,通过添加特有属性和方法扩展功能。子类覆盖重写父类方法时,需在方法前使用`@Override`注解标记。方法重写要求子类方法与父类方法具有相同名称、参数列表和返回值类型。示例代码展示了一个`Animal`类和一个继承自`Animal`类的`Dog`类,其中`Dog`类重写了`move...

Java 子类继承父类,子类重写父类方法,这种情况下父类可以获取到子类的数...
这里BaseClass bc就是子类的引用,构造子类SubClass或SSClass实例时,调用setBC方法将子类的引用获得。setBC中return this这里的this是子类的实例,不是父类的。setBC也可以在父类构造函数中调用,效果是一样的,如上面代码的注释块。子类就不用关心任何事了,不管它是否有自己的构造方法:public class ...

java中子类自动继承父类的无参构造方法吗?
首先子类中的方法必须调用父类的构造方法,如果父类中只有一个有参的构造方法,你在子类的构造方法必须调用,而且是子类的构造方法第一句话必须是调用父类的有参构造方法,否则编译器会提示错误的。如果父类中有无参的构造方法,你没有写的话会自动调用的 ...

Java中父类默认的构造函数可不可以被子类重写
不能被重写 父类的无参构造函数不能被子类继承 ,而是被子类隐式调用,即:super();所以不可以重写父类默认的构造函数 父类:子类:

关于Java 的继承问题,子类会继承父类的哪些东西?
在Java继承里,父类的属性还有方法在声明时,如果是public关键字即公共属性,则在子类继承时,这些属性和方法都会被子类继承。受保护的也可以继承 但是私有的类属性成员和方法则无法继承。.子类继承父类的成员变量 当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员...

相似回答