Super

使用super关键字可以直接调用父类中的构造方法、属性、普通方法

super调用父类构造方法的操作,与this调用构造方法一样,语句必须放在子类构造方法的首行

public class Person {                //定义父类Person
private String name; //定义name属性
private int age; //定义age属性
public Person(String name,int age) { //通过构造方法设置name、age
this.setName(name); //设置name属性内容
this.setAge(age); //设置age属性内容
}
public String getName() { //取得name属性
return name;
}
public void setName(String name) { //设置name属性
this.name = name;
}
public int getAge() { //取得age值
return age;
}
public void setAge(int age) { //设置age值
this.age = age;
}
public String getInfo(){ //信息输出
return "姓名:"+this.getName()+"; 年龄:"+this.getAge();
}
}
public class Student extends Person{
private String school; //定义新属性school
public Student(String name, int age, String school) {
super(name, age); //调用父类中的构造方法
this.school = school;
}
public String getSchool() { //取得school属性
return school;
}
public void setSchool(String school) { //设置school属性
this.school = school;
}
@Override
public String getInfo() { //覆写父类中的方法
return super.getInfo()+" ;学校:"+this.getSchool(); //扩充父类方法
}
}
public class Demo {
public static void main(String[] args) {
Student stu = new Student("李四", 25, "北京大学");
System.out.println(stu.getInfo()); //调用覆写过得方法打印输出
}
} 运行结果:
姓名:李四; 年龄:25 ;学校:北京大学

从上面的程序中可以看出子类中使用super()方法调用了父类中含有两个参数的构造方法,然后再覆写了父类中的getInfo()方法,最后输出内容是被子类覆写过的内容;

super和this十分类似,都可以调用构造方法、属性、普通方法。但是也有区别:

序号 区别点 this super
1 属性访问 访问本类中的属性,如果本类中没有则从父类中查找 访问父类中的属性
2 方法 访问本类中的方法,如果本类中没有则从父类中查找 直接访问父类中的方法
3   调用构造 调用本类构造,必须放在构造方法首行 调用父类构造,必须放在子类构造方法首行
4 特殊 表示当前对象 无概念

既然都可以调用构造方法,那么this和super不可以同时出现,因为都要放在构造方法首行。另外,无论子类如何操作,最终先调用父类中的构造方法


static

static表示“全局”或者“静态”的意思,用来修饰成员变量或成员方法;被static修饰的成员变量和成员方法独立于该类的任何对象,也就说他不依赖于任何实例的对象,当该类被创建时它们也被创建;因此static对象可以在他的任何对象创建之前访问,无需引用任何对象

static修饰的成员变量或成员方法习惯上称作静态变量或静态方法可以直接通过类名来访问,访问语法为:

类名.静态方法名(参数列表)

类名.静态变量名

final

final表示的意思是最终,可以使用final关键字声明类、属性、方法

  • 使用final声明的类不能有子类
  • 使用final声明的方法不能被子类覆写
  • 使用final声明的变量即成为常量,常量不可修改

使用final声明变量时,要求全部字母大写

JAVA面对对象(三)——Super、static、final关键字的更多相关文章

  1. Java 基础 enum枚举类 的创建/使用/接口继承 ,以及手动创建枚举类的对象为:public static final

    笔记: import java.lang.*; /**一:枚举类 : enum Season implements info { s1(),s2(),s3(),s4() }; //s1--s4 放在S ...

  2. JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展

    JAVA之旅(七)--final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展 OK,我们继续学习JAVA,美滋滋的 一.final 我们来 ...

  3. java面对对象 关键字this super

    this:this是指向对象本身的一个指针,成员函数内部指向当前类的对象 其实this主要要三种用法: 1.表示对当前对象的引用! 2.表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是 ...

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

    1.this关键字的作用     1)调用本类中的属性;     2)调用本类中的构造方法;且只能放首行,且必须留一个构造方法作为出口,即不能递归调用     3)表示当前对象; 2.匿名对象     ...

  5. 乐字节Java继承|方法重写、super和final关键字

    大家好,乐字节的小乐又来了,上一篇是:乐字节Java|JavaBean.继承与权限修饰,也是属于Java继承的,今天继续Java继承. 一. 方法的重写 父类不满足子类的要求,按需改写.注意 方法签名 ...

  6. 关键字——this,super,static,final

    this 理解为当前对象. //测试 public static void main(String[] args){ Person person = new Person(3, "xiaoM ...

  7. java 面对对象(抽象 继承 接口 多态)

    什么是继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 多个类可以称为子类,单独这个类称为父类.超类或者基类. 子类可以直接 ...

  8. Java面试题,深入理解final关键字

    final关键字 final的简介 final可以修饰变量,方法和类,用于表示所修饰的内容一旦赋值之后就不会再被改变,比如String类就是一个final类型的类. final的具体使用场景 fina ...

  9. super和final关键字

    一.super关键字 super关键字的使用 JAVA类中使用super来引用父类的属性或者方法,用this来引用当前对象,主要用法: 1.子类的构造函数默认第一行会默认调用父类的无参数构造函数 2. ...

随机推荐

  1. C# 接受MQTT服务器推送的消息

    前言: MQTT是IBM开发的一个即时通讯协议.MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制. 大家可以直接上GitHub下载MQQT服务的源码,源码地址:https:// ...

  2. vue 去除前后空格trim

    一.使用trim修饰符 <input v-model.trim = "massage" > 二.使用filter过去属性 html: <ul id="l ...

  3. 习题 6 字符串(string)和文本

    虽然你已经在程序中写过字符串了,你还没学过它们的用处.在这章习题中我们将使用复杂的字符串来建立一系列的变量,从中你将学到它们的用途.首先我们解释一下字符串是什么 东西. 字符串通常是指你想要展示给别人 ...

  4. salt安装及使用部分笔记

    安装脚本install_salt.sh: #!/bin/bash####安装第三方yum源rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel ...

  5. P3512 [POI2010]PIL-Pilots-洛谷luogu

    刚研究完单调队列和单调栈 于是就找题做了 发现了这道蓝题 以为很简单 就着手来写了 然而 并不是我想的那样 只是有一点点思路 无奈 还是看了题解 好吧题解是真的挺好的 ---------------- ...

  6. Linux kernel 之 socket 创建过程分析

    重要结构体 struct socket 结构体 // 普通的 BSD 标准 socket 结构体 // socket_state: socket 状态, 连接?不连接? // type: socket ...

  7. BMP280 driver对接单片机I2C或者SPI总线接口

    1:登录github网站搜BMP280,找到 BoschSensortec/BMP280_driver 2:gitclone或者download zip都可以,把驱动下载到本地,记得fork哦! 3: ...

  8. Tensorflow-hub[例子解析2]

    接Tensorflow-hub[例子解析1]. 3 基于文本词向量的例子 3.1 创建Module 可以从Tensorflow-hub[例子解析1].中看出,hub相对之前减少了更多的工作量. 首先, ...

  9. 如何计算PCB设计中的阻抗

    关于阻抗的话题已经说了这么多,想必大家对于阻抗控制在pcb layout中的重要性已经有了一定的了解.俗话说的好,工欲善其事,必先利其器.要想板子利索的跑起来,传输线的阻抗计算肯定不能等闲而视之. 在 ...

  10. mysql 5.7 版本的安装

    目录 一.概述 二.MySQL安装 三.安装成功验证 四.NavicatforMySQL下载及使用 一.概述 MySQL版本:5.7.17 下载地址:http://rj.baidu.com/soft/ ...