用super调用父类构造方法
类如果没有显式声明构造方法,则自动生成无参数的默认构造方法。
1.先用一个无参数的父类构造方法验证一下,
执行子类构造方法会自动调用父类的构造方法。测试代码:
class Human3{
public Human3(){
System.out.println("构造一个人");
}
}
class Pupil3 extends Human3{
public Pupil3(){
// super(); //本句注释与不注释执行结果是一样的
System.out.println("构造了一个学生 ");
}
}
public class Example3 { public static void main(String[] args) {
// TODO Auto-generated method stub
Pupil3 pupil3=new Pupil3();
}
}

运行结果:

表明,子类构造方法会默认调用父类的构造方法,对于无参的父类构造方法,写不写super()输出结果是一样的。

2.用一个有参数的父类构造方法验证一下。
执行子类构造方法会自动调用父类的构造方法。测试代码:
 class Human3 {

     private String name;
private int age; public Human3(String name) {
super();
this.name = name;
System.out.println("构造一个人");
} } class Pupil3 extends Human3 {
private String ID;
private String name;
private int age; public Pupil3(String name, String iD, int age) {
super(name);
ID = iD;
this.age = age;
System.out.println("构造一个小学生");
} } public class Example3 { public static void main(String[] args) {
// TODO Auto-generated method stub
Pupil3 pupil3 = new Pupil3("张三", "p123", 10);
}
}

运行结果

3.此时如果注释掉super方法就会报错。

报错原因:子类必须继承父类的构造方法,如果父类构造方法中没有参数传递,那么默认是不写super()继承父类的构造方法的。

Human3类的构造方法没有无参数的构造方法,所以,必须继承父类有参数的构造方法,所以,必须写super关键字来继承父类的有参数的构造方法。

除了调用父类构造方法外,super还可在子类中指代父类对象,用于:
访问被子类隐藏的父类字段,
调用被子类覆盖的父类方法。
使用形式:

super.父类字段名

super.父类方法名(可选实参表)

 
4.实例成员(实例字段、实例方法):没有static修饰的成员。
实例成员就是非静态成员,实例成员为类对象所独占。
使用对象(实例)作前缀引用实例成员,语法形式:

对象名.方法名(实参表)

对象名.字段名

关键字this用于指代当前的对象。因此,类内部可以使用this作前缀引用实例成员。
例如,Pupil3类中可用this.age引用实例字段age。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java基础-super关键字与this关键字的更多相关文章

  1. Java基础语法(11)-面向对象之关键字

    title: Java基础语法(11)-面向对象之关键字 blog: CSDN data: Java学习路线及视频 1.this this是什么 它在方法内部使用,即这个方法所属对象的引用: clas ...

  2. Java基础笔记(2) 程序入口 关键字 标识符 常量 变量

    提醒:关于那些和我一样新鸟来看资料的,能看懂多少看多少,看不懂的就是不重要,重要的你想我自己学习肯定要标注的,这些信息明白每个知识点实际作用就好了,其他的比如等会讲的常量内存,常量池这些都是我找的资料 ...

  3. Java基础の乱弹琴一:assert关键字

    一.概述 assert:表示断言 二.语法 在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默 ...

  4. Java基础之final和abstract关键字

    final final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编 ...

  5. Java基础super关键字、final关键字、static关键字、匿名对象整理

    super关键字 10.1子父类中构造方法的调用 public class Test { public static void main(String[] args) { new Zi(); } } ...

  6. java基础—super关键字

    一.super关键字

  7. JAVA基础--super关键字

    子类对象new的时候堆里的内存分配: 1. 父类成员变量 2. 子类成员变量 3. this对象指向自己 4. super对象指向父类 super调用父类的方法: class FatherClass ...

  8. 夯实Java基础(七)——Static关键字

    1.static介绍 static关键字一直是各大企业中面试常常会问到的问题,主要考察面试者的基础是否扎实,下面来介绍一下static关键字. Java中static表示“全局”或者“静态”的意思,可 ...

  9. Java 基础 面向对象之构造方法和关键字

    构造方法 构造方法简介 在开发中经常需要在创建对象的同时明确对象的属性值,比如员工入职公司就要明确他的姓名.年龄等属性信息. 那么,创建对象就要明确属性值,那怎么解决呢?也就是在创建对象的时候就要做的 ...

随机推荐

  1. jQuery10种不同动画效果的响应式全屏遮罩层

    遮罩层有很多今天介绍这个jQuery10种不同动画效果的响应式全屏遮罩层 效果预览 下载地址 实例代码 <div class="container"> <head ...

  2. PHP插入header('content-type:text/html;charset="utf-8')和error_reporting()

    1.header PHP文件插入header("Content-type: text/html; charset=utf-8");相当于页面里面的<meta http-equ ...

  3. 如何使用递归遍历对象获得value值

    一般要用到递归,就要判断对象是否和父类型是否一样 这里演示简单的对象递归,还有数组递归类似. var obj = { a:{w:1,y:2,x:3}, b:{s:4,j:5,x:6}, c:{car: ...

  4. css3加载ing动画

    项目中ajax交互成功前总会需要给用户提醒,比如请稍候.正在加载中等等,那个等待的动图以前项目中用的是gif,在移动端画质很渣,有毛边,于是在新项目中用css3展示加载中的动画效果. function ...

  5. ThinkPHP3.2 G函数代码及 使用方法

    ThinkPHP3.2 G函数代码及 使用方法 代码: // 内存是否可调用 define('MEMORY_LIMIT_ON',function_exists('memory_get_usage')) ...

  6. C#遍历得到checkboxlist选中值和设置选中项

    得到选中项的value值并拼接成一个字符串返回 public string GetChecked(CheckBoxList checkList, string separator) { string ...

  7. javascript --- 原型初探七日谈(一)

    在javascript中,像原型,闭包这样的概念,只要我们能领悟其中的原理,一切都会显得格外清晰与明了. 原型属性(prototype): 下面我们简单定义一个函数 function her(a, b ...

  8. [Android]AndroidInject增加sqlite3数据库映射注解(ORM)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3623050.html AndroidInject项目是我写的一 ...

  9. Android点击空白处,隐藏软键盘

    在做登陆或者注册的时候,软键盘经常可能会挡住一些界面.我们需要在输入完成之后隐藏软键盘. 在我们点击空白处或者非EditText的地方来隐藏软键盘. public class HomeActivity ...

  10. 一组PHP可逆加密解密算法

    对于大部分密码加密,我们可以采用md5.sha1等方法.可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密. 对于需要还原的信息,则需要采用可逆的加密解密算法. 下面一组PHP函数是实现此加 ...