super,this关键字
目录
一:this关键字:
this关键字的主要作用:
(1)指到本对象:以引用对象的成员变量和方法
(2)区分同名变量:
三:调用本类的构造方法:
二:super关键字:
super关键字的主要作用:
(1):使用super关键字访问父类的成员变量和成员方法
(2)使用super关键字访问父类中指定的构造方法:
一:this关键字:
this关键字的主要作用:
(1)指到本对象:以引用对象的成员变量和方法
calss Student{public void openMouth(){.... }public void read(){this.openMouth();}
(2)区分同名变量:
class Studenet{String name;int age;public Student(name,age){name=name;age=age;}public String read(){ ...}
}
此时,构造方法里参数名称与对象名称相同,编译器无法确定哪个名称是当前对象的属性。this关键字可以来指代当前对象,通过this可以访问当前对象的成员。
class Studenet{String name;int age;public Student(name,age){this.name=name;this.age=age;}public String read(){ ...}
}
三:调用本类的构造方法:
class Student{private String name;private int age;public Student(){System.out.println("实例化了一个新的Student对象!");}public Student(String name,int age){this(); //调用无参构造函数this.name=name;this.age=age;}.......
}
使用this调用类的构造方法时,应注意:
- 只能在构造方法中使用this调用其他的构造方法,不能在成员方法中通过this调用其他构造方法。
- 在构造方法中,使用this调用构造函数方法的语句必须位于第一行,且只能出现一次。
- 不能在一个类的两个构造方法中使用this互相调用。
二:super关键字:
super关键字的主要作用:
(1):使用super关键字访问父类的成员变量和成员方法
格式:
super.成员变量
super.成员方法(参数1,参数2....)
class Animal{String name="牧羊犬";void shout(){System.out.println("动物发出叫声");}
}
class Dog extends Animal{public void shout(){super.shout(); //调用父类中的成员方法System.out.println("汪汪汪...");}public void printName(){System.out.println("名字:"+super.name); //调用父类中的name属性}
}
......
(2)使用super关键字访问父类中指定的构造方法:
class Animal{private String name;private int age;public Animal(String name,int age){this.name=name;this.age=age;}....}
class Dog extends Animal{private String color;public Dog(String name,int age,String color){super(name,age); //调用父类的构造方法this.color=color;}
....
}
......
注意:
通过super()方法调用父类的构造方法的代码必须位于子类构造方法的首行并且只能出现一次。
因此,this,super两者不能同时出现(两者在调用父类构造方法时都得位于构造方法的首行)
super,this关键字相关推荐
- 继承extends ,this super final 关键字,abstract抽象类,override方法重写
继承extends 私有成员不能被继承 总结:子类方法中,使用变量的原则是:就近原则 1 package review06; 2 /* 3 私有成员不能被继承 4 子类和父类有同名的成员变量:在子类 ...
- ES6的 super 关键字
Class之间可以通过extends关键字实现继承,这比ES5的通过修改原型链实现继承,要清晰和方便很多. 子类必须在constructor方法中调用super方法,否则新建实例时会报错. 这是因为子 ...
- Java8基础之super关键字
相信学过Java语言的小伙伴都熟悉super这个关键字,接下来,我们来研究他的一些基础用法吧. 定义名字为Father的类 package superkeyworld;public class Fat ...
- es6 super关键字
super关键字 super这个关键字,既可以当作函数使用,也可以当作对象使用.在这两种情况下,它的用法完全不同. 第一种情况,super作为函数调用时,代表父类的构造函数.ES6 要求,子类的构造函 ...
- Java——super关键字
1.super是关键字,全部小写. 2.super和this对比: this: this能出现在实例方法和构造方法中. this的语法: "this." . "this ...
- ES6 (二十二)Class 的继承、extends关键字、super 关键字(函数调用(constructor)、对象(父类原型对象))、原型对象(原型链)、Mixin 模式
ES6 (二十二)Class 的继承.extends关键字.super 关键字(函数调用(constructor).对象(父类原型对象)).原型对象(原型链).Mixin 模式 文章目录 ES6 (二 ...
- super关键字、static关键字、多态
super关键字: 是java里面一个引用变量,用于直接引用父类对象,每当创建子类的实例时,父类的实例被隐式隐藏,这个时候可以用super关键字来调用. 用法如下: 1 super可以用来引用直接父类 ...
- JavaScript中解析super关键字
虽互不曾谋面,但希望能和您成为笔尖下的朋友 以读书,技术,生活为主,偶尔撒点鸡汤 不作,不敷衍,意在真诚吐露,用心分享 点击左上方,可关注本刊 标星公众号(ID:itclanCoder) 如果不知道如 ...
- static 关键字作用
static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...
- java super实例_java Super 用法详解及实例代码
java Super 用法详解及实例代码 发布于 2021-1-8| 复制链接 摘记: java Super 用法详解 1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建 ...
最新文章
- Fragment有直接关系的关键性类FragmentManager,FragmentTransaction,FragmentActivity
- MPB:北大口腔陈峰、陈智滨等-口腔常见微生物的培养方法
- hibernate多对多映射拆成2个一对多映射(注解)
- Python开发Day03
- 2021-04-12 电机滑模控制 LuGre摩擦模型
- 一种情感判别分析体系在汽车品牌舆情管理中的应用
- python plot map_python的colormap总结(matplotlib+ncl+气象家园调色盘)
- 瑞信中国前CEO唐臻怡加盟商汤科技出任副总裁
- Unity Lighting(一)光照练习
- php和python-一个身居中国的法国程序员谈Python与PHP
- Python3 configparser值为多行时配置文件书写格式
- 【初级03】java JVM核心技术(3): jvm调优
- python dicom 测量_python对DICOM图像的读取方法详解
- cad工具箱详细讲解_AutoCAD学院派工具箱(XCAD)使用教程(图文解说)
- 整理NLPIR基本功能函数
- 命令行安装卸载驱动服务
- 快速原型模型的概念,优缺点。
- 安装好vmware后界面默认英语如何修改成中文或者其他语言
- zoomit64_终极缩放工具? Sysinternal的ZoomIt
- jvm 内存模型结构
热门文章
- 【工具】matlab计算可转换债券的实时到期收益率和税后收益率
- 计算机机箱的dvd结构,天天都在用电脑,你知道电脑主机的组成结构吗?
- 朋友圈广告怎么投放?4步帮你搞定朋友圈广告投放
- ESP32 WIFI MESH学习笔记9-百度IOT接入(服务器部分)
- Arduino获取温度实时曲线图并记录到excel生成统计图
- js 判断数组中是否有重复值两种方法
- ASP.NET MVC 框架
- virsh 关机_kvm 虚拟化 virsh shutdown 无法关闭客户机
- parallels desktop 安装centos7默认密码和root问题
- 防止表单重复提交的方法