JAVA基础(十六)Super关键字

Super关键字:

Super关键字的特点:

This  与super 不能同时存在第一行;

构造方法第一行都有一个默认语句 super()无参构造;

私有化后显示定义无法在用默认,

空参时先调父类构造在子类构造,因为默认语句 super()

第一行只要this在就没有super.

super的调用:

super:代表当前对象父类的引用

super.成员变量 调用父类的成员变量

super(…) 调用父类的构造方法

super.成员方法 调用父类的成员方法

//定义Person类,将Student和Worker共性抽取出来
class Person {
    private String name;
    private int age;
    public Person(String name, int age) {
        // super();
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}//Student extends Person
class Student extends Person {
    // Student类的构造方法
    Student(String name, int age) {
        // 使用super关键字调用父类构造方法,进行相应的初始化动作
        super(name, age);
    }
    public void study() {// Studnet中特有的方法
        System.out.println(this.getName() + "同学在学习");
    }
}//Worker extends Person
class Worker extends Person {
    Worker(String name, int age) {
        // 使用super关键字调用父类构造方法,进行相应的初始化动作
        super(name, age);
    }
    public void work() {// Worker 中特有的方法
        System.out.println(this.getName() + "工人在工作");
    }
}//测试
public class Test {
    public static void main(String[] args) {
        Student stu = new Student("小明",23);
       stu.study();

Worker w = new Worker("小李",45);
w.work();
    }

This()是调用自己其他的构造函数,Super()是调用自己继承的父类的构造函数“,

如果只想调用默认无参数的父类构造函数,不用在子类的构造函数当中写出来,但是实际编程的时候,总是会忽略这一点。

   那门这两个关键字能不能同时出现在子类的一个构造函数当中吗?答案肯定是不能

  原因:This  与super 不能同时存在第一行;JAVA 中规定使用 this 和 super 时必须放在构造函数第一行

 

原文地址:https://www.cnblogs.com/layuechuquwan/p/11302229.html

时间: 2024-08-29 15:31:37

JAVA基础(十六)Super关键字的相关文章

Java基础十六

1 Set接口概述 一个不包含重复元素的Collection. 2 HashSet类 2.1 HashSet类的概述 它不保证Set的迭代顺序,特别是它不保证该顺序恒久不变. 底层数据结构是哈希表. 添加功能依赖于两个方法: public int hashCode() public boolean equals(Object obj) 2.2 HashSet的应用 应用: package com.xuweiwei; import java.util.HashSet; import java.ut

Java基础十--接口

Java基础十--接口 一.接口的定义和实例 1 /* 2 abstract class AbsDemo 3 { 4 abstract void show1(); 5 abstract void show2(); 6 } 7 8 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用 9 另一种形式定义和表示,就是 接口 interface. 10 */ 11 12 //定义接口使用的关键字不是class,是interface. 13 //interface编译后还是.class文件,其实本质

java基础知识回顾之关键字

其实java中的常用关键字并不多,总共加起来也没有多少个,具体见如下这张表: private,protect,public 在java中,在类,类的属性和累的方法前面加上一个修饰符来对其进行访问权限上的控制.除了使用private,protect,public之外, 还有一种是default情况,即使不加任何权限修饰符.关于这四中情况的权限差别见下表: 注意:default不是修饰符,他表示一种不加任何修饰符的情况. 这里,主要看一看static,instanceof,final关键字的含义和如

Bootstrap<基础十六> 导航元素

Bootstrap 提供的用于定义导航元素的一些选项.它们使用相同的标记和基类 .nav.Bootstrap 也提供了一个用于共享标记和状态的帮助器类.改变修饰的 class,可以在不同的样式间进行切换. 表格导航或标签 创建一个标签式的导航菜单: 以一个带有 class .nav 的无序列表开始. 添加 class .nav-tabs. 下面的实例演示了这点: <!DOCTYPE html> <html> <head> <title>Bootstrap 实

“全栈2019”Java第十六章:下划线在数字中的意义

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第十六章:下划线在数字中的意义 下一章 "全栈2019"Java第十七章:赋值运算符和算术运算符 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&q

“全栈2019”Java第九十六章:抽象局部内部类详解

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第九十六章:抽象局部内部类详解 下一章 "全栈2019"Java第九十七章:在方法中访问局部内部类成员详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学

Java 基础:认识&理解关键字 native 实战篇

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket 泥瓦匠初次遇见 navicat 是在 java.lang.Object 源码中的一个hashCode方法: 1 public native int hashCode(); 为什么有个navicat呢?这是我所要学习的地方.所以今天泥瓦匠想要总结下navicat. 一.认识 native 即 JNI,Java Native Interface 凡是一种语言,都希望是纯.比如解决某一个方案都喜欢就单单这

Java基础十二--多态是成员的特点

Java基础十二--多态是成员的特点 一.特点 1,成员变量. 编译和运行都参考等号的左边. 覆盖只发生在函数上,和变量没关系. Fu f = new Zi();System.out.println(f.num);//是父类,答案是3 2,成员函数(非静态). 编译看左边,运行看右边. 因为成员函数存在覆盖特性. Fu f = new Zi();//f.show();输出的是子类里面的show方法 3,静态函数. 编译和运行都看左边. 静态函数不具备多态性,多态性是对象的多态性,然后静态函数不涉

java基础(六)

JAVA基础(六) 数组 数组是一组相关变量的集合. 数组是一组相关数据的集合,一组数据实际上就是一连串的的变量,数组按照使用可以分为一维数组.二维数组.多维数组. 数组能够进行一组数据的管理. 一维数组的定义:     类型 数组名[] = new 数组名[数组长度]; 一维数组的读取:    数组名[下标] = input.next(); 一个数组的最大索引号(下标)是它的元素个数(数组的长度)-1 获得数组长度:数组名.length 数组中每一个元素类型都是一样的 若要取出或写入数组中指定

java基础面向对象之this关键字

java基础面向对象之this关键字 2017-02-14 this的核心概念: this关键字在java中表示当前对象. this关键字的主要用法: 在java中利用this关键字可以实现类属性的调用,类方法的调用,当前对象. 一.调用属性 1 class Book{ //Book类 2 private String title ; //title属性 3 private int price ; //price属性 4 5 public Book(String t , int p){ 6 ti