java基础_day0022_java关键字_this_super_构造器_子类对象实例化
2017-03-21 09:29
211 查看
super 关键字
调用 父类中和子类中 重名的 属性 和方法 调用父类的属性和方法 用super.关键字 调用子类中的属性和方法用this.
如果只有父类和子类中的属性或者方法不同名 则可以省略关键字 或者用this. 或者super.都可以。
如果 子类重写 父类的方法 之后 还想调用父类的方法, 直接用super.的形式去显示调用父类的方法, 直接写方法名或者 this.方法名的形式来调用重写父类之后的方法。
super(形参列表)形容构造器 也必须在构造器首行。 this(形参列表)
父类:
子类:
测试类
子类的实例化过程
在new 子类对象时 除了子类本身的属性外, 在调用子类的构造器时 ,默认调用suer()构造器 同时把父类的属性带入子类对象中。
子类对象的实例化过程
当前类中的构造器中 如果有N个构造器 最多可以有N-1个 this(形参列表);语句来调用其他的构造器 【this语句必须在构造器的首行】。
最后一个 无 this(形参列表); 的构造器 首行 默认有super(形参列表); 语句来调用其继承父类的构造器 ,
利用父类的构造器 来加载父类具有的属性和方法,【由于有权修饰符限问题,有的属性和方法 子类能够加载 ,确无法调用 使用 】 当前类如果无显式继承的父类 那么继承其 顶级父类Object
Object 类中通过API观察得知 只有 构造器 、方法 无具体属性 。
调用 父类中和子类中 重名的 属性 和方法 调用父类的属性和方法 用super.关键字 调用子类中的属性和方法用this.
如果只有父类和子类中的属性或者方法不同名 则可以省略关键字 或者用this. 或者super.都可以。
如果 子类重写 父类的方法 之后 还想调用父类的方法, 直接用super.的形式去显示调用父类的方法, 直接写方法名或者 this.方法名的形式来调用重写父类之后的方法。
super(形参列表)形容构造器 也必须在构造器首行。 this(形参列表)
父类:
package day08_03; public class Person { private int age; private String name; protected int id; //父类的id public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
子类:
package day08_03; /** * Worker 继承 Person 父类 有重复属性 id * * this.id 调用子类的id 属性 * super.id 调用父类的id 属性 * @author Administrator * */ public class Worker extends Person{ private int id; //子类的id private String desc; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public Worker() { super(); } public void eat(){ this.id=123; super.id=555555; System.out.println(this.id+":"+super.id); } }
测试类
子类的实例化过程
在new 子类对象时 除了子类本身的属性外, 在调用子类的构造器时 ,默认调用suer()构造器 同时把父类的属性带入子类对象中。
package day08_03; /** * 子类的实例化过程 * * 在new 子类对象时 除了子类本身的属性外, 在调用子类的构造器时 ,默认调用suer()构造器 同时把父类的属性带入子类对象中。 * * @author Administrator * */ public class TestWorker { public static void main(String[] args) { Worker w = new Worker(); w.eat(); } }
子类对象的实例化过程
当前类中的构造器中 如果有N个构造器 最多可以有N-1个 this(形参列表);语句来调用其他的构造器 【this语句必须在构造器的首行】。
最后一个 无 this(形参列表); 的构造器 首行 默认有super(形参列表); 语句来调用其继承父类的构造器 ,
利用父类的构造器 来加载父类具有的属性和方法,【由于有权修饰符限问题,有的属性和方法 子类能够加载 ,确无法调用 使用 】 当前类如果无显式继承的父类 那么继承其 顶级父类Object
Object 类中通过API观察得知 只有 构造器 、方法 无具体属性 。
package day08_05; /** * 子类对象的实例化过程 * 当前类中的构造器中 如果有N个构造器 最多可以有N-1个 this(形参列表);语句来调用其他的构造器 【this语句必须在构造器的首行】。 * 最后一个 无 this(形参列表); 的构造器 首行 默认有super(形参列表); 语句来调用其继承父类的构造器 , * 利用父类的构造器 来加载父类具有的属性和方法,【由于有权修饰符限问题,有的属性和方法 子类能够加载 ,确无法调用 使用 】 当前类如果无显式继承的父类 那么继承其顶级父类Object * Object 类中通过API观察得知 只有 构造器 、方法 无具体属性 。 * * @author Administrator * */ public class TestDog { public static void main(String[] args) { Dog dog = new Dog(); // 调用当前dog对象的属性 + 继承父类的属性+ 父类的父类方法+ 顶级父类Object的 toString()方法 System.out.println(dog.getAge()+"--"+dog.getHostName()+":"+dog.getName()+"\t"+dog.toString()); } } class Creator{ private String name; public Creator() { // 实例化当前对象时默认调用父类的空参构造器,默认继承object父类 // super 修饰构造器 跟this关键字一样 必须放在构造器的首行。 super(); this.name="小花狗"; } public String getName() { return name; } public void setName(String name) { this.name = name; } } class Animal extends Creator{ private int age; public Animal() { super(); this.age = 5; } public Animal(int age) { super(); this.age = age; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } class Dog extends Animal{ private String hostName; public Dog() { super(5); this.hostName="miss ming"; } public String getHostName() { return hostName; } public void setHostName(String hostName) { this.hostName = hostName; } }
相关文章推荐
- java基础(四)——面向对象_类、封装、构造器、this
- JAVA面向对象基础:继承、变量隐藏、方法重写、包、修饰符、this、super
- Java基础:this和super的用法
- 黑马程序员——Java基础---面向对象代码块和继承和this和super和重写和重载和final
- 2.23 Java基础总结 ①toString方法②equals③this和super④final⑤常量
- java基础(3)__this,super关键字的用法
- java基础---Java关键字this与super
- JAVA基础_简析Java中的new,this,super,final关键字
- Java基础之六:关键字this、super、static
- 黑马程序员--java基础--关键字this和super
- Java基础--static、this、super用法
- 黑马程序员_Java基础_this,super,static,final关键字
- Java基础- super 和 this 解析
- Java中this与super,构造器执行顺序
- [好程序员训练营]java基础之this和super笔记
- 黑马程序员:Java基础总结----this的用法(super)
- Java基础--static、this、super用法
- Java基础巩固:static、this、super、final用法
- java基础のsuper和this区别和联系
- Java 基础—— super关键字学习以及super与this的比较