super与this用法
super注意点:
1、当super调用父类的构造方法,必须在构造方法的第一个;
2、super必须只能出现在子类的方法或者构造方法中;
3、super和this不能同时调用构造方法;
4、super可调用父类的属性和方法,不包括private私有属性和方法
与this的区别:
1、代表对象不同。this:本身调用者调用这个对象(谁调用就是谁);super:代表父类对象的应用。
2、this没有继承也能使用;super只能在继承条件下使用
3、this() :默认调用的是本类的构造; super()调用的是父类的构造。
实例;
public class Person{
protected String name="BBQ";
public Person(){ //无参构造方法
Syste.out.println("person");
}
public Person(String name){ //有参构造方法
this.name=name;
}
}
public class Student extend Person{
public Student(){ //在子类无参,默认调用父类的无参
// 这里会省略一句:super();,会先执行父类的无参后再执行下面内容
System.out.println("student");
}
public void print(){
System.out.println(super.name); //输出BBQ,调用父类的属性
}
}
主类:
public class Appliaction{
public static voiid main(String[] args){
Student student =new Student();
}
}
运行结果:
person
student
BBQ
super与this用法的更多相关文章
- Python中super函数的用法
之前看python文档的时候发现许多单继承类也用了super()来申明父类,那么这样做有何意义? 从python官网文档对于super的介绍来看,其作用为返回一个代理对象作为代表调用父类或亲类方法.( ...
- 解读typescript中 super关键字的用法
解读typescript中 super关键字的用法 传统的js,使用prototype实现父.子类继承.如果父.子类有同名的方法,子类去调用父类的同名方法需要用 “父类.prototype.metho ...
- Java super与this用法解析
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base" ...
- python中super()的一些用法
在看python高级编程这本书的时候,在讲到super的时候,产生了一些疑惑,super在python中的用法跟其他的语言有一些不一样的地方,在网上找了一些资料,发现基本上很少有文章能把我的疑惑讲明白 ...
- java中super和this用法总结
一.this用法 概念:this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的指针. this的用法在java中大致可以分为三种: 1. 普通对象的直接引用:this相当于指向当前对象本身 ...
- 论super().__init__()的用法
当我们调用 super() 的时候,实际上是实例化了一个 super 类. super 是个类,既不是关键字也不是函数等其他数据结构,该对象就是专门用来访问父类中的属性的(严格按照继承的关系). -- ...
- python中super关键字的用法
http://python.jobbole.com/86787/ class A: def __init__(self): print "enter A" print ...
- java中this关键字和static关键字和super关键字的用法
this关键字 1. this 关键字是类内部当中对自己的一个引用,可以方便类中方法访问自己的属性: 2.可以返回对象的自己这个类的引用,同时还可以在一个构造函数当中调用另一个构造函数(这里面上面有个 ...
- 对python的super方法的用法理解
参考链接:https://www.cnblogs.com/dkblog/archive/2011/02/24/1980654.html https://www.cnblogs.com/wjx1/p/5 ...
- java中super关键字的用法
class Sum { int n; float f() { float sum=0; for(int i=1;i<=n;i++) sum=sum+i; System.out.println(& ...
随机推荐
- JSON理解(一篇就够了)
可以看看视频讲解,视频几十分钟就结束了 JSON 1.什么是json 其实是一种数据格式的规范,与开发的语言无关,轻量级的数据格式 全称JavaScript Object Notation 2.优点: ...
- pymongo 笔记(转)
1. 安装MongoDB并启动服务,安装PyMongo2. 连接MongoDB,并指定连接数据库.集合 import pymongo client = pymongo.MongoClient(host ...
- 编译安装nmap
官方编译文档 参考 安装对应的库,并编译安装.
- CF-1175 B.Catch Overflow!
题目大意:有一个初始变量,值为0,三种操作 for x 一个循环的开始,循环x次 end 一个循环的结束 add 将变量值加一 问最后变量的值是否超过2^32-1,若超过,输出一串字符,不超过则输出变 ...
- 机器学习之线性回归以及Logistic回归
1.线性回归 回归的目的是预测数值型数据的目标值.目标值的计算是通过一个线性方程得到的,这个方程称为回归方程,各未知量(特征)前的系数为回归系数,求这些系数的过程就是回归. 对于普通线性回归使用的损失 ...
- npm install说明
一.常用简写 npm install=npm i.在git clone项目的时候,项目文件中并没有 node_modules文件夹,项目的依赖文件可能很大.直接执行,npm会根据package.jso ...
- fiddler抓包-7-C端弱网测试
前言大家平时也会发现我们有时候在地铁.高铁.电梯等等某个时候网络信号比较差导致网络延迟较大,这时是否有友好提示呢?甚至有可能发生崩溃等等...所以我们是可以通过fiddler来对web.APP.PC客 ...
- Flask-Moment本地化日期和时间
moment.js客户端开源代码库,可以在浏览器中渲染日期和时间.Flask-Moment是一个flask程序扩展,能把moment.js集成到Jinja2模板中. 1.安装 pip install ...
- 修改设置notepad++默认保存文件格式
设置notepad++保存文件的默认格式 在使用notepad++新建文件保存后,有的时候会有一个all type 然后没有文件扩展名,很不方便 网上有很多帖子都是如下图所示的提示,但是却不生效
- [Zabbix] 安装MySQL5.7, 部署Zabbix到CentOS 7日记
安装环境:CentOS7 64位,安装MySQL5.7 一.安装 MySQL 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads ...