Super关键字理解
来源:互联网 发布:php erp管理系统 编辑:程序博客网 时间:2024/05/21 09:12
Super关键字
- super不是引用类型,super中存储的不是内存地址,super指向的不是父类对象,super代表的是当前子类对象中的父类型特征。
this是引用型变量,保存对象的内存地址(和super区别),super和this都需要依托对象的存在,才可以使用(所以static修饰的成员变量和成员方法都无法使用this和super) - 什么时候使用super?
子类和父类中都有某个数据, 例如,子类和父类都有name这个属性。如果要在子类中访问父类中的name属性,需要使用super。 - super可以用在什么地方?
a) super可以用在成员方法中
b) super可以用在构造方法中 - super的作用?
a) 通过子类的构造方法调用父类的构造方法
语法规则:一个构造方法第一行如果没有this(…),也没有显示的调用super(…);
系统会默认调用super();
注意:super(…);的调用只能放在构造方法的第一行
b) 单例模式的缺陷:单例模式的类型没有子类,无法被继承,因为构造方法私有化
例子:
//Account.java 父类 public class Account { private String actno; private double balance; public Account() { System.err.println("父类无参构造方法"); } public Account(String actno, double balance) { this.actno = actno; this.balance = balance; System.out.println("父类有参构造函数并给成员变量赋值"); } public void setActno(String actno) { this.actno = actno; } public String getActno() { return actno; } public void setBalance(double balance) { this.balance = balance; } public double getBalance() { return balance; }}-------------------------------------------------//CreditCard.java 子类public class CreditCard extends Account{ private double credit; public CreditCard() { super(); //可以显示写出来,可以不写出来,效果一样,调用父类无参构造函数 System.out.println(“子类无参构造方法”); } public CreditCard(String actno, double balance, double credit) {//通过子类的构造方法调用父类的构造方法,作用是:给当前子类的父类型特征赋值,并没有创建父类对象 super(actno, balance); this.credit = credit; System.out.println("子类有参构造方法并给成员变量赋值"); } public void setCredit(double credit) { this.credit = credit; } public double getCredit() { return credit; }}---------------------------------------------Test.java 主类public class Test { public static void main(String[] args) { // TODO Auto-generated method stub CreditCard c = new CreditCard(); CreditCard c2 = new CreditCard("123",1000.5,3000.8); System.out.println("Actno="+c2.getActno()); System.out.println("Balance="+c2.getBalance()); System.out.println("Credit="+c2.getCredit()); }}运行结果:父类无参构造方法子类无参构造方法父类有参构造函数并给成员变量赋值子类有参构造方法并给成员变量赋值Actno=123Balance=1000.5Credit=3000.8
阅读全文
0 0
- java super关键字理解
- Super关键字理解
- parent,son深刻理解this,super关键字
- Java中 this 和 super 关键字理解
- 深入理解Java中super关键字
- java继承extends与super关键字理解
- super关键字
- 关键字super
- super 关键字
- super关键字
- super关键字
- 关键字super
- super关键字
- super关键字
- Super关键字
- 关键字super
- super关键字
- super 关键字
- 如果有人让你推荐编程技术书,请叫他看这个列表
- Spring-boot -- 配置文件
- Python基础-获取对象信息的常用函数
- Centos6.4下Yum命令安装Mysql数据库及配置
- 时间处理
- Super关键字理解
- ListView同时相应长按点击事件和单击事件的解决方法
- 新语言Kotlin使用recyclerview展示数据+retrofit请求数据+Rxjava
- mysql5.7官网直译InnoDB表优化--磁盘I/O的优化
- 30秒让你知道悲观锁和乐观锁的区别
- null
- redis支持的五种数据类型及其底层实现
- Windows下SQLMAP的安装图解
- linux0.00内核剖析之2.保护模式内存管理