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中一个子类是不是可以继承父类的构造方法的主要内容,如果未能解决你的问题,请参考以下文章

java子类可以继承父类的构造方法吗

JAVA中,子类将继承父类的所有属性和方法吗?为啥?

子类可以继承父类的啥

子类可以继承父类的啥

Java继承-子类不可以继承父类的构造方法

php子类的构造函数能继承父类的吗?