java基础_day0022_java关键字_this_super_构造器_子类对象实例化
来源:互联网 发布:初中考试软件 编辑:程序博客网 时间:2024/06/06 00:46
super 关键字
调用 父类中和子类中 重名的 属性 和方法 调用父类的属性和方法 用super.关键字 调用子类中的属性和方法用this.
如果只有父类和子类中的属性或者方法不同名 则可以省略关键字 或者用this. 或者super.都可以。
如果 子类重写 父类的方法 之后 还想调用父类的方法, 直接用super.的形式去显示调用父类的方法, 直接写方法名或者 this.方法名的形式来调用重写父类之后的方法。
调用 父类中和子类中 重名的 属性 和方法 调用父类的属性和方法 用super.关键字 调用子类中的属性和方法用this.
如果只有父类和子类中的属性或者方法不同名 则可以省略关键字 或者用this. 或者super.都可以。
如果 子类重写 父类的方法 之后 还想调用父类的方法, 直接用super.的形式去显示调用父类的方法, 直接写方法名或者 this.方法名的形式来调用重写父类之后的方法。
super(形参列表)形容构造器 也必须在构造器首行。 this(形参列表)
父类:
package day08_03;public class Person {private int age;private String name;protected int id; //父类的idpublic 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; //子类的idprivate 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;}}
0 0
- java基础_day0022_java关键字_this_super_构造器_子类对象实例化
- java 子类对象的实例化 调用构造函数先后
- Java 构造器之访问子类对象的实例变量
- JAVA基础-子类继承父类实例化对象过程
- Java 子类构造对象
- 黑马程序员——高新技术---Java基础语法—面向对象_构造方法,static 关键字
- Java基础_面向对象_类与对象、构造函数、关键字、静态代码块、单例
- java基础_day0022_java_关键字_Override__子类_父类_个人账户存钱_消费_的测试
- java面向对象-子父类中构造函数的特点-子类实例化过程super
- 张孝祥老师java课程_子类对象的实例化过程
- 再学 JAVA基础(5)对象转型,多态。【子类对象的实例化过程】
- 再学 JAVA基础(5)对象转型,多态。【子类对象的实例化过程】
- 个人学习-java-子类对象实例化
- Java子类对象的实例化过程
- java基础_构造方法、this、static关键字
- 1-Java的命名规则_关键字_数据类型_类_对象_面向对象的编程语言_封装_构造器_重载_this关键字_static修饰
- JAVA子父类中构造函数的特点-子类实例化过程
- 子类继承父类,那么子类实例化时对象调用的是父类还是子类的构造函数?
- swap file “*.swp”already exists
- MJPEG协议入门介绍
- 学习JavaScript设计模式(六)
- linux 端口被占用解决
- C++篇----开篇(1)
- java基础_day0022_java关键字_this_super_构造器_子类对象实例化
- nswoj G
- Hadoop2.X中Mapreduce,YARN等配置,启动和常见错误解决办法
- for循环,定时器,闭包混合一块的那点事。
- 用JavaScript生成验证码
- js 获取复选框被选中的值 jquery
- Linux中的文件权限
- JSP动作元素
- C和C++的区别 02.函数检测