构造方法的继承和重载

1.构造方法的重载是指同一个类中定义不同参数的多个构造方法,已完成不同情况下对象的初始化。

例如:

Point();
Point(x);
Point(x,y);

2.一个类的若干个构造方法之间可以相互调用,当类的构造方法需要调用另一个构造方法时,可以使用关键子 this();括号可以带参数或不带参数,并且这个调用语句必须是这个构造方法的第一个可执行语句。

例如:

class Sun {
    Sun(int a){
     System.out.println("Hello this is week "+a);
      }
    Sun(){
      this(5); //调用另一个构造方法
    System.out.println("My name is Sun");
     }
   }

public class Test{
    public static void main(String args[]){
     Sun moon=new Sun();

    }

 }
运行结果:
Hello this is week 5
My name is Sun

this的用法

3.构造方法的继承

Java中子类可以继承父类的构造方法,构造方法的继承遵循以下的原则:

一.子类无条件的继承父类的无参数构造方法

二.对于带参数的父类的构造方法,子类可以在自己的构造方法中使用super关键字来调用它,但这个调用的语句必须是子类构造方法中的第一个可执行语句

三.如果子类中没有定义构造方法,则它将继承父类的无参数构造方法作为自己的构造方法(注意不是将父类的带参数的构造方法作为自己的构造方法)l如果子类定义了构造方法,则在创建对象时,将先执行来自继承父类的无参数构造方法,然后在执行自己的构造方法。

例如:

class A{
    public A(){
        System.out.println("Hello A");
    }
}

class B extends A{
    public B(){
        System.out.println("Hello B");
    }
}

class C extends B{
    public C(){

        System.out.println("Hello C");
    }
}

public class Test {

    public static void main(String[] args) {
        C c=new C();
    }

}

构造方法的继承

时间: 2024-10-19 06:01:35

构造方法的继承和重载的相关文章

构造方法和方法的重载

** * 方法重载就是在类中可以写多个方法名相同的方法,但这些方法除了方法名相同外,其参数类型,参数个数 * 和方法的返回值,都不相同. * *而构造方法就是一种特殊的方法,其的方法名必须和类名相同. *构造方法没有返回值类型,没有void *构造方法不能从父类中继承 *构造方法可以重载,一个class可以有多个构造方法,不同的对象根据参数的不同 * 选择合适的构造方法. * 构造方法不能直接通过方法名来引用,必须用new运算符 * 在构造方法中可以调用当前类和其父类的另一个构造方法,但必须是方

C#面向对象(继承的重载和构造函数)

构造函数: 继承的重载:

C++学习_继承覆盖重载

今天通过对实验二继承,重载,覆盖的学习,让我更深一步理解了这些概念的区别. 首先来明确一个概念,函数名即地址,也就是说函数名就是个指针. 编译阶段,编译器为每个函数的代码分配一个地址空间并编译函数代码到这个空间中,函数名就指向这个地址空间. 也即每个函数名都有自己唯一的代码空间. 同理,类的成员函数也是如此. 但是,有一点大家一定要记住,C++编译器编译CPP文件时,会根据"C++编译器的函数名修饰规则" 对函数名进行修饰.(修饰规则大家自己去搜吧,我就不叙述了),前面讲到函数名称的作

JAVA构造方法,继承关系和SUPER关键字

SUPER可调用父类的构造方法,但要注意默认调用和参数调用. 同时,在继承类时,可以用SUPER调用其它非构造方法哟. class Test extends Object{ public Test(){ System.out.println("Test1 First thing"); } public Test(String welcome){ System.out.println("Test1 " + welcome); } protected void doSo

oc36--自定义构造方法在继承中的表现

// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject @property int age; @property NSString *name; /* 自定义构造方法: 其实就是自定义一个init方法 1.一定是对象方法 2.一定返回id/instancetype 3.方法名称一定以init开头 */ - (instancetype)initWithAge:(int)age; //- (inst

java学习之继承、重载、重写(覆盖)

java中使用extends关键字完成继承,和C++中的继承不同之处在于java只支持单继承,不支持多重继承. 继承让我们的代码编码变得简单,维护也变得简单,扩展变得容易.我们在继承的时候不能继承构造方法,一个类得到构造方法只有两种方法,一种是自己定义构造方法,一种是使用JVM分配的缺省构造方法. 当方法名称相同,但是参数不一样的时候,这就是方法的重载: 方法的重载返回值类型可以不一样 方法的修饰符也可以不一样 main方法也可以被重载 方法重写:如果在子类中定义一个方法,其名称.返回类型及参数

封装、继承、重载、重写、多态

有时候,代码写的不少,但有些术语却总是记得不太清楚:有些原理,明明经常用到,但却不太会描述.既然如此,那就记录下来,印象不深的时候再来看看. 1.封装:把对象的属性.操作(或业务)结合为一个整体(class),并尽可能得隐藏内部实现细节,使得对数据的访问只能通过已定义的接口. public class Person { private String name = "张三"; private int age = 18; public String getName() { return n

构造方法和方法的重载。

---恢复内容开始--- 构造器,又称为构造方法.constructor 构造器用于构造该类的实例. 格式: [修饰符] 类名(形参列表){ //n条语句 } 是一种特殊的方法: 1.通过new关键字调用 2.构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不能字啊构造器里调用return. 3.如果我们没有定义构造器,则系统u会自动定义一个无参的构造函数.如果已定义则编译器不会添加! 4.构造器的方法名必须和类名一致! 5.构造该类的对象,经常也用来初始化对象的属性. --

构造方法的继承

class PersonA {    String name; //姓名    int age;     //年龄    //有参数构造方法    public PersonA(String name,int age)    {        this.name=name;        this.age=age;    }    //无参数构造方法    public PersonA ()    {        this.name="张三";        this.age=20;