java Super 用法详解及实例代码

发布于 2021-1-8|

复制链接

摘记: java  Super 用法详解 1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建属性的初始化,这样在一个构造函数中调用另外一个构造函数,可以避免重复的代码量,减少工作量;2)在一个构造函数中调用另外一个构造函数的时候应该用的是同一块内存空间,在默认的构造函数中 ..

java  Super 用法详解 1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建属性的初始化,这样在一个构造函数中调用另外一个构造函数,可以避免重复的代码量,减少工作量;2)在一个构造函数中调用另外一个构造函数的时候应该用的是同一块内存空间,在默认的构造函数中先初始化变量,调用另一个的时候覆写已经初始化的变量的值;3)整个调用的过程和递归调用函数有点类似,不断充气球,直到整个气球膨胀起来,不断的深层递进,遇到停止标记,逐层的跳出来。     写了段代码,解释我上面的叙述:

```java

class JavanTiger {

int age; // 年龄

int hight; // 身体高度

public JavanTiger() {

print();

this.age=2; //这里初始化 age 的值 ,但递归返回的时候,这个值会被覆写

}

public JavanTiger(int age) {

this(); // 调用自己的第一个构造函数,下面的两个语句数不执行的

this.age = age;

print();

}

public JavanTiger(int age, int hight) {

this(age); // 调用自己第二个构造函数 ,下面的两个语句数不执行的

this.hight = hight;

print();

}

public void print() { //打印函数

System.out.println("I'am a " + age + "岁 " + hight + "尺高 tiger!");

}

public static void main(String[] args) {

new JavanTiger(3,3);

}

}

//output

//I'am a 0岁 0尺高 tiger!

//I'am a 3岁 0尺高 tiger!

//I'am a 3岁 3尺高 tiger!

```

个人理解就是这样了,可能里面还有问题,比如构造函数递归调用和程序函数递归调用的机制是否似乎相同的?构造函数同对象一起产生,也就是同时会分配内存空间出来,那门这样的递归调用会不会打乱分配内存的顺序?希望看到的大牛们拍板,给个最好的解释。     今天要总结的是 super 这个关键字的使用,super 在构造函数中出现的时候一般是当前这个类继承了其他的类,super 的出现就是为了调用父类的构造函数,贴段代码先

```java

class Tiger {

int age; // 年龄

int hight; // 身体高度

public Tiger() {

print();

}

public void print() {

System.out.println("I'am a " + age + "岁 " + hight + "尺高 tiger!");

}

}

public class JavanTiger extends Tiger {

public JavanTiger() {

super(); // 调用父类无参数的构造函数

}

public static void main(String[] args) {

new JavanTiger();

}

}

```

其实在类JavanTiger 中的构造函数中的 super()可以不写,JAVA会默认调用父类的无参数的构造函数,但如果父类没有定义无参数的构造函数,没有语法错误,程序会自动退出,没有任何打印语句,这时候你需要手动调用其他父类的构造函数,贴段代码:

```java

class Tiger {

int age; // 年龄

int hight; // 身体高度

public Tiger(int age) {

this.age = age;

print();

}

public void print() {

System.out.println("I'am a " + age + "岁 " + hight + "尺高 tiger!");

}

}

public class JavanTiger extends Tiger {

public JavanTiger() {

super(1); // 调用父类有参数的构造函数

}

public static void main(String[] args) {

new JavanTiger();

}

}

```

java super实例_java Super 用法详解及实例代码相关推荐

  1. java list用法_Java List 用法详解及实例分析

    Java List 用法详解及实例分析 Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺 ...

  2. java enum使用_java enum用法详解

    我们都知道,enum是java的一个语法糖,实际编译后的文件仍然是一个java类,今天我们就拨开语法糖的外衣,看一看原始的java类应该是什么样的. 首先写一个enum类: enum Color { ...

  3. Java(enum)枚举用法详解

    转载自 Java(enum)枚举用法详解 本篇文章主要介绍了Java 枚举用法详解,枚举的好处:可以将常量组织起来,统一进行管理.有兴趣的可以一起来了解一下. 概念 enum的全称为 enumerat ...

  4. java 枚举类型enum的用法详解

    Java Enum原理 public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE }; 实际上,这个声明定义的类型是一个类,它刚好有四个实例,在此尽量不要 ...

  5. java string()函数_转载java String.split()函数的用法详解

    转载java String.split()函数的用法详解 如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!在java.lang包中有String.split()方法的原型是: p ...

  6. 《Java基础——break与continue用法详解》

    Java基础--break与continue用法详解 一. break语句: 规则: 1. 仅用于循环语句和switch语句当中,用于跳出循环. 2. 当只有一层循环时,则直接跳出循环,不再进行下一轮 ...

  7. C++中const关键字用法详解及实例和源码下载(一)

    最近在学习C++基础部分,看了两天书,已经看过了一遍,半知半解,回过头来重新看第二遍,深入了解一下C++的基础知识.现在读到了const关键字的用法,书上面讲解的时候并没有给出完整的实例,只是理论的讲 ...

  8. java技术详解_Java反射技术详解及实例解析

    前言 相信很多人都知道反射可以说是Java中最强大的技术了,它可以做的事情太多太多,很多优秀的开源框架都是通过反射完成的,比如最初的很多注解框架,后来因为java反射影响性能,所以被运行时注解APT替 ...

  9. Java基础(七): instanceof用法详解

    1.instanceof说明 instanceof 是 Java 的保留关键字. 作用是:测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型. instanceof是Java中的 ...

最新文章

  1. Github多人合作用法
  2. 使用 Apache Commons CSV 读写 CSV 文件
  3. 大话android 进程通信之AIDL
  4. SQLite命令行程序说明
  5. 傅立叶变换、拉普拉斯变换、Z变换之间 篇二
  6. ftpClient的连接超时设置(setConnectTimeout,setSoTimeout)
  7. P3901-数列找不同【模拟】
  8. 迭代反投影法代码_Ceres求解直接法BA实现自动求导
  9. L2-001. 紧急救援-PAT团体程序设计天梯赛GPLT(Dijkstra算法)
  10. 售货员的难题(codevs 2596)
  11. SingalR 构建 推送服务器初探
  12. Entity Framework 代码先行之约定配置
  13. Origin 8.6 使用常见操作(随遇随写)
  14. matlab norm函数使用_matlab中norm函数的用法(图)
  15. ad15的stc元件库_STC8系列 STC15系列STCMCU Protel_Altium原理图PCB器件封装库文件
  16. DEDECMS 留言薄模块的使用方法
  17. 空间连续体上接触力的无线传感和定位
  18. 连接查询(MySQL)
  19. Hadoop快速入门——入门考试(伪分布式60+编码25+执行jar15)
  20. java 生成ecc证书_升级支持ECC证书指南

热门文章

  1. Graphics View 坐标系统
  2. oracle PL/SQL
  3. 【WPF】监听WPF的WebBrowser控件弹出新窗口的事件
  4. Mozilla 扩展开发环境设置
  5. 社保,交得越多亏得越多(转)
  6. 详解随机神经网络结构搜索 (SNAS)
  7. 临界区、事件、互斥量、 信号量--四种控制多线程同步与互斥的方法
  8. c++ 利用boost 实现文件操作
  9. 新装ubuntu9.10后配置全过程(很多常见问题的解决方法)
  10. springboot + shiro 尝试登录次数限制与并发登录人数控制