/* 1.super不是引用类型,super中存储的不是内存地址,super指向的不是父类对象. 2.super代表的是当前子类对象中的父类型特征。 3.什么时候使用super? 子类和父类中都有某个数据,例如,子类和父类中都有name这个属性。 如果要在子类中访问父类中的name属性,需要使用 super. 4.super可以用在什么地方? 第一:super可以用在成员方法中.不能用在静态方法中. 第二:super可以用在构造方法中. */ //经理 public class Manager extends Employee{ String name = "李四"; //子类将父类中的work方法重写了. public void work(){ System.out.println("经理在工作!"); } //成员方法 public void m1(){ //this.work(); //work(); super.work(); System.out.println(this.name); System.out.println(name); System.out.println(super.name); } /* //this和super相同,都不能用在静态上下文中。 public static void m1(){ System.out.println(super.name); } */ /* super关键字用在构造方法中: 语法:super(实参); this(实参)通过一个构造方法调用另一个构造方法。 作用:通过子类的构造方法去调用父类的构造方法. 语法规则:一个构造方法第一行如果没有this(...);也没有显示的去调用super(...); 系统会默认调用super(); 注意:super(...);的调用只能放在构造方法的第一行. super(....)和this(....)不能共存。 super(...);调用了父类中的构造方法,但是并不会创建父类对象。 在java语言中只要是创建java对象,那么Object中的无参数构造方法一定会执行。 单例模式的缺点:单例模式的类型无法被继承。 */ public class DebitAccount extends Account{ //Field //独特属性 private double debit; //Constructor public DebitAccount(){ //super(); } public DebitAccount(String actno,double balance,double debit){ //通过子类的构造方法去调用父类的构造方法,作用是:给当前子类对象中的父类型特征赋值。 super(actno,balance); this.debit = debit; } //setter and getter public void setDebit(double debit){ this.debit = debit; } public double getDebit(){ return debit; } }
本文出自 “gaogaozi” 博客,请务必保留此出处http://hangtiangazi.blog.51cto.com/8584103/1661181
原文地址:http://hangtiangazi.blog.51cto.com/8584103/1661181