java中一个子类是不是可以继承父类的构造方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中一个子类是不是可以继承父类的构造方法相关的知识,希望对你有一定的参考价值。
子类可以继承父类的构造方法,并遵循以下原则:1、子类无条件的继承父类的无参构造方法。
2、子类自身没有定义构造方法,继承父类的无参构造方法,作为构造方法;子类自身定义了无参构造方法。
3、对于父类的含参构造方法,子类可以在自己的构造方法的第一行使用关键字super来调用。
代码如下:
//Fighter.java
class Airplane
private int speed;
public Airplane(int s)
speed=s;
System.out.println;
class Warplane extends Airplane
public Warplane()
super(600);
System.out.println;
public Warplane(int s)
super(s);
System.out.println;
public class Fighter extends Warplane
public Fighter()
super();
System.out.println);
public Fighter(int s)
super(s);
System.out.println;
public static void main(String[] args)
System.out.println;
Fighter f1=new Fighter();
System.out.println;
Fighter f2=new Fighter(500);
参考技术A
构造方法不会被继承,当子类实例化时会自行先去找父类构造方法,之后再找自身构造方法。代码说明(java为例)
父类class person
public person
//父类构造方法
System.out.println("我是父类无参构造方法");
public class student extends person
public static void main(String[] args)
//实例化student
student stu1 = new student();
//运行上述代码,在控制台输出:我是父类无参构造方法本回答被提问者采纳 参考技术B 你可以试下这样:(错误的代码)
class A
A(String a)
System.out.println(a);
private String a="调用了";
class B extends A
B()
System.out.prntln("no");
你必须这样:
class A
A(String a)
System.out.println(a);
private String a="调用了";
class B extends A
B(String a)
super(a);
System.out.prntln("no");
private Stirng a="调用了";
public class A
public static void main(String[] args)
B b = new B("s"); //OK
调用方式:如果子类没有覆盖父类的构造方法则默认调用父类的默认构造方法(即父类无参数的构造方法),也就是说如果父类的构造方法有参数则会出错。
继承就跟我们现实中的父子关系差不多,要有一个孩子对象那么就得先有一个父亲(会调用父类的构造方法),所以会执行父类构造方法。另一种如果你想调用父类的带参数构造方法,那还得通过super关键字来调用。构造方法是不能继承的,想想如果能继承 那不是孩子也能构造父亲了
参考技术C 可以,如果子类不重写父类的构造方法,那么调用的时候就调用的是父类的构造方法JAVA中,子类将继承父类的所有属性和方法么~?为啥?
两个问题都要回答哦``谢谢``
是的,子类将继承父类的非私有的属性和方法。
在JAVA中,子类继承父类的所有方法和属性(构造方法要用关键super([参数])调用);继承是JAVA中一个重要的特色,便于程序的编写,提高代码的重用性。
1、如果给子类i提供get和set 通过get调用的自然是子类的。
2、如果给父类和子类分别提供get和set,调的仍然是子类的,因为方法被重写。
扩展资料
在继承中用到super调用父类的构造
private String name;
private String sex;
public xinxin1(String name,String sex)
this.name=name;
this.sex=sex;
public void hello()
System.out.println(“嗨!我是”+name+”我是”+sex+”孩”);
参考技术A 1、是的,除了JAVA中,子类继承父类的所有方法和属性(构造方法要用关键字super([参数])调用)另外,当父类的方法或属性被声明为private(私有的)时,子类也是不可以继承的。
2、继承是JAVA中一个重要的特色,便于程序的编写,提高代码的重用性。本回答被提问者采纳 参考技术B 当一个类拥有另一个类的所有数据和操作时,就称这两个类之间具有继承关系。
被继承的类称为父类或超类,继承了父类或超类的所有数据和操作的类称为子类。
子类将拥有父类或者超类的所有属性和方法。
在Java语言程序设计类头定义中用extends表明子类与父类的继承关系。 参考技术C private 的属性和方法是不能被继承的。
能继承public,default,protected 的属性和方法。
因为父类就是子类的模板,当然能继承,但是private只有对类本身才具有可见性,所以子类不能继承其方法和属性。 参考技术D 每个子类对象都包装有父类的一个对象,每次调用子类的构造函数都会调用父类的构造函数进行初始化。你可以简单的理解为,子类就是父类的一个修改扩展版。
以上是关于java中一个子类是不是可以继承父类的构造方法的主要内容,如果未能解决你的问题,请参考以下文章