继承中的构造方法 

1、子类的构造过程中必须调用其基类的构造方法。

2、子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法。

  2.1、使用this(argument_list)调用本类的另外构造方法。

    2.2、如果调用super,必须写在子类构造方法的第一行。

3、如果子类的构造方法中没有显示的调用基类的构造方法,则系统默认调用基类的无参数构造方法。

4、如果子类构造方法中既没有显示调用基类构造方法,而基类又没有无参数的构造方法,则编译出错。

class SuperClass{
private int n;
//SuperClass(){
// System.out.println("SuperClass()");
//}
SuperClass(int n){
System.out.println("SuperClass(int n)");
this.n = n;
}
}
class SubClass extends SuperClass{
private int n; SubClass(){
super(300);
System.out.println("SuperClass"); }
SubClass(int n){
System.out.println("SubClass(int n):"+n);
this.n = n;
}
}
public class TestSuperSub{
public static void main (String args[]){
//SubClass sc = new SubClass();
SubClass sc2 = new SubClass(200);
}
}

依次验证上面的语法。

java之继承中的构造方法的更多相关文章

  1. JAVA基础--继承中的构造方法

    1. 子类的构造方法必须调用父类的构造方法 2. 子类在自己的构造方法中使用super(argument_list)调用父类的构造方法, 使用this(argument_list)调用自己的其他的构造 ...

  2. java的继承中构造方法

    构造方法在创建对象的时候是被自动调用的,然后在继承中,是先调用父类的构造方法,然后在调用子类的构造方法, 当构造方法重写之后,在super中添加对应你想要调用构造方法的参数 例:父类 package ...

  3. Java--Inheritance constructor继承中的构造方法问题(一)

    Java规定,一个父类可以同时拥有多个子类,但一个子类只能有一个父类,即单重继承,允许多层继承,即子类还可以有自己的子类,在下一层继承关系中原先的子类就变成了父类,这样的继承关系就形成了继承树. 子类 ...

  4. Java关于继承中的内存分配

    1.定义         super:当前对象的父类对象         this   :当前对象,谁调用this所在的方法,this就是哪一个对象.   2.内存分析 另一个例子: public s ...

  5. java之继承中的静态变量

    package Test; /** * Created by wangbin10 on 2018/7/9. * 我们知道静态变量属于类级别变量,对应每个类只有一份,类的所有实例共有一份,而成员变量则分 ...

  6. Java学习笔记之Java 继承中的构造方法

    参考

  7. super用法和继承中的构造方法

    当new出来一个对象的时候,  this是只想对象本身. 在存在继承关系时, 在子类中用super表示引用父类中的东西. 子类的构造过程必须调用父类的构造方法. 子类中包含父类,所以子类中一定要先调用 ...

  8. Java--Inheritance constructor继承中的构造方法问题(二)

    看了前辈的博客,觉得这两点说的精辟:子类构造方法必须要调用父类的某个构造方法:被子类调用的父类构造方法在父类中必须是存在的. 上篇的例子有一点不明白,子类继承了父类的成员变量,父类的构造函数里引用了该 ...

  9. java代码继承难点。构造方法的调用

    总结:子类默认调用父类的无参构造方法.重写时,父类方法将被覆盖,不被调用,在子类中可以使用super.方法():可以实现 运行显示: evente.x:55 evente.x:55 B.y:57 pa ...

随机推荐

  1. 使用pug(jade),以及在vue+webpack中使用pug(jade)

    一:在HTML中使用pug 在css中有预处理器less和scss来使我们的样式表更加的简介,那么在HTML中有没有这样的格式呢,答案是有的,那就是pug(前身是jade),效果如下: 转译以后 好, ...

  2. std::condition_variable(二)

    #include <iostream> // std::cout #include <thread> // std::thread, std::this_thread::yie ...

  3. Java基础ArrayList、Servlet与Filter

    一.技术分享 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因 ...

  4. java拾遗4----一个简单java程序的运行全过程

    简单说来,一个java程序的运行需要编辑源码.编译生成class文件.加载class文件.解释或编译运行class中的字节码指令. 下面有一段简单的java源码,通过它来看一下java程序的运行流程: ...

  5. 品友互动大数据平台的技术演化 https://www.sohu.com/a/191202836_99982360

    品友互动大数据平台的技术演化

  6. Ubuntu 下 mysql 卸载后重安装时遇到的问题

    卸载mysql报错解决方法1 dpkg: error processing mysql-server (--configure): dependency problems - leaving unco ...

  7. 剑指Offer——数组中出现次数超过一半的数字

    题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2 ...

  8. 原!linux 监控 jar定时任务 挂了重启 脚本

    #!/bin/bash time=$(date "+%Y-%m-%d %H:%M:%S") echo "monitor start at: ${time}" P ...

  9. 我不想用for循环

    为什么要挑战自己在代码里不写for loop?因为这样可以迫使你去使用比较高级.地道的语法或库.文中以python为例子,讲了不少大家其实在别人的代码里都见过.但自己很少用的语法. 这是一个挑战.我要 ...

  10. Mysql中字段类型之时间戳大坑

         一 .环境说明: 在目前项目中,有这样的一张表,用来记录会议的相关信息,例如:会议的内容.会议的参会人员.会议的地点.会议的状态(会议是否已结束.会议是否被撤销).会议的开始时间以及该条信息 ...