构造方法的继承

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;
    }
    void print()
    {
    System.out.println("class PersonA : "+"Name:"+this.name+": age: "+this.age);
    }
    
    }
//子类
class StudentA extends PersonA
{
    String  name;
    int classno;  //班号
    //无参构造函数
    public StudentA()
    {
        super("马云",54); //调用父类的成员方法
        this.name="马化腾";
        this.age=43;
    }
    public StudentA(String name,int age,int classno)
    {
      this.name=name;
      this.age=age;
      this.classno=classno;
      
    }
    void sprint()
    {
        System.out.println("class StuentA:"+"Name :"+this.name+"Age:"
    +this.age+"Classno:"+this.classno);
        System.out.println("父类的成员变量方法:"+super.name);
    }
    
    }
public class Constructorlnherit {
    public static void main(String[]args)
    {
        StudentA obj1=new StudentA();
        StudentA obj2=new StudentA("李彦宏",46,3);
        obj1.print();
        obj1.sprint();
        //
        obj2.print();
        obj2.sprint();
        
        
    }

}
/*
 * super代表当前对象的直接父类对象
 * 访问父类的无参构造方法:super();
 * 访问父类的有参构造方法:super(参数列表);
 * 访问父类的成员变量方法:super.成员变量方法;
 */
1.子类无条件继承父类的无参数的构造方法。

2.子类没有定义构造方法时,则它将继承父类的无参数构造方法作为自己的构造方法:如果子类定义了构造方法,则在创建对象事,将先执行来自继承的父类的无参数构造发方法

然后执行自己的构造方法。

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

时间: 2024-10-24 12:30:13

构造方法的继承的相关文章

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

构造方法的继承和重载

1.构造方法的重载是指同一个类中定义不同参数的多个构造方法,已完成不同情况下对象的初始化. 例如: Point(); Point(x); Point(x,y); 2.一个类的若干个构造方法之间可以相互调用,当类的构造方法需要调用另一个构造方法时,可以使用关键子 this();括号可以带参数或不带参数,并且这个调用语句必须是这个构造方法的第一个可执行语句. 例如: class Sun { Sun(int a){ System.out.println("Hello this is week &quo

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继承中的构造方法

继承中的构造方法: //A 继承于 B //1.在new一个A之前,需要先构造一个B //2.在A的构造方法内中使用"super()"关键字先对B进行构造(需要将super关键字放在构造方法的第一行,因为只有先构造出了B之后才能进行下一步的A的构造) //3.在A构造方法中没有写super关键字的时候,编译器会自动调用父类无参的构造方法(无论父类无参构造方法有没有重写) //4.super()根据传入参数对应父类不同构造方法 //5.super()在多层子类中只是构造向上一层类中的构造

关于继承的总结

继承 继承的基本概念: 所谓继承是指一个类的定义可以基于另外一个已经存在的类,即子类基于父类,从而实现父类代码的重用,子类能吸收已有类的数据属性和行为,并能扩展新的能力. 如果类 B 从类 A 派生,或者说类 B 扩展自类 A,或者说类 B 继承类 A, 则称类 A 为"父类",也称为超类.基类: 称类 B 为"子类",也称为次类.扩展类.派生类. 继承的形式: [访问权限修饰符][修饰符] 子类名  extends  父类名{子类体} 继承的作用: 代码复用,子类

面向对象【day07】:类的属性-继承-经典类

本节内容 类的公有属性 析构函数 类的继承 新式类和经典类 一.类的公有属性 一.概述 前面我们讲了类的私有属性,现在我们来说说类的公有属性,这边很容易被人弄混淆,有人觉的,在__init__()构造方法中,除了私有属性,其他的都是公有属性了,其实这是一个错误的结论,并不是定义在__init__()初始化方法中的属性是公有属性(除私有属性),那什么是公有属性呢?揭起了大家的好奇心. 定义:指的是所属这个类的所有对象,都可以访问的属性,叫做公有属性. 二.公有属性 2.1 定义 说明:在类中直接定

this/super/static/final/匿名对象/继承/抽象类/访问权限修饰符

1.this关键字的作用     1)调用本类中的属性;     2)调用本类中的构造方法;且只能放首行,且必须留一个构造方法作为出口,即不能递归调用     3)表示当前对象; 2.匿名对象     直接new出来的对象,不创建变量名,且只能使用一次,通常作为方法的参数及返回值使用 3.继承     继承是面向对象的三大特征之一,通过关键字:extends实现,被继承的类称为父类(也称作基类/超类),实现继承的类称为子类(也称作派生类).     特点:     (1)通过继承,子类可以直接访

java基础知识6-- 抽象类,抽象方法,接口,构造方法,类方法等易混淆的知识点

一.抽象类和抽象方法 (B 继承  抽象类A) 抽象类:有抽象方法的一定是抽象类 抽象方法:方法名前有abstract修饰,且方法没有方法体,即{},不需要实现任何功能,只是声明 1.抽象类中的方法有两种: (1)抽象类中的普通方法,可以不必实现 (2)抽象方法,所属的抽象类被继承后,抽象方法必须被重写,除非是被抽象类继承,不必被 抽象类必须被继承,且抽象类不能被实例化,即抽象类A ,不能定义 A a=new A() ; package Interface; /** * Created by w

面向对象--继承和重写

1.什么继承?继承有什么优点? 继承是从已有的类中派生出新的类,新的类能吸收已有的的数据属性和行为. 优点:1.代码的重用性.2.父类的属性方法可用于子类3.设计应用程序变得简单4.子类可以扩展父类的属性和方法. 2.继承使用什么关键字?extends关键字 3.一个类可以同时继承多个类吗?所有类的父类是什么?在Java中一个类只能有一个父类,一个类不能同时继承两个父类所以的类的根类是object 4.什么是重写?用什么方法可以强制检测当前方法是否重写父类方法?方法的重写发生在父类和子类之间,子