子类的实例化过程与final关键字
来源:互联网 发布:植物学专业知乎 编辑:程序博客网 时间:2024/06/06 08:29
4.5 子类的实例化过程
(1)子类的构造过程中必须调用其父类的构造方法;
package com.Extends2.copy;public class Person { String name; int age; Person(){ System.out.println("我是Person的无参数构造函数!"); } Person(String name,int age){ this.name=name; this.age=age; System.out.println("我是Person的有参数构造函数!"); } }package com.Extends2.copy;//Student继承了Person,就可以直接使用Person中的变量与方法public class Student extends Person{ int grade; //在子类构造函数中,必须调用父类的构造函数! Student(){super();//如果不写这行代码,编译器会自动执行它,调用父类中的无参构造函数 System.out.println("我是Student的无参数构造函数!"); } Student(String name,int age,int grade){ //this.name=name; //this.age=age; super(name,age);//通过调用父类中的有参构造函数减少上面被注释的两行代码 //与this相似,只不过super调用的类是被继承的类(有继承关系) this.grade=grade; } }package com.Extends2.copy;public class Test { public static void main(String[] args) { // TODO 自动生成的方法存根 Student student=new Student("张三",7,1); System.out.println(student.name); System.out.println(student.age); System.out.println(student.grade); }}
运行结果:
Super的应用:
Super的主要作用是完成子类调用父类的内容,也就是调用父类的属性或方法。
(2)如果子类的构造方法中没有显示调用父类的构造方法,则系统会默认调用父类无参的构造方法;
(3)如果要显示调用构造方法,与this一样,必须在子类的构造方法的第一行;
(4)如果子类构造方法中既没有显式调用父类的构造方法,则父类由没有无参的构造方法,则编译出错。
(5)可以使用super调用父类中构造方法,成员变量与成员方法。例如:super.age=10;其中age是父类中的变量。类比this关键字,this(…,…)可以调用本类中构造函数,this.函数;可以调用本类中的成员函数。
4.6 final关键字
(1)final是一个修饰符,既可以修饰类,又可以修饰方法,还可以修饰变量。
(2)final修饰的类不可以被继承。
final class Fu{void show();}class Zi extends Fu{void show2();//错误}
(3)final修饰的方法不可以被覆盖。
class Fu{ final void show();}class Zi extends Fu{ void show();//该方法无法覆盖父类中的show()方法}
(4)final修饰的变量是一个常量,只能赋值一次。为了将固定的一些数据方便使用,会给这些起一个容易阅读的名称。例如:
final double PI = 3.14;
有时我们为了防止名称存储的数据改变便用final修饰。一般为final修饰的变量名称都是大写字母组成,如果有多个单词,每个单词之间用下划线分隔。
记住:在开发时,一旦程序中有出现固定的数据,一定要将其用一个容易阅读的名称存储,并final修饰。
内部类只能访问被final修饰的局部变量。
0 0
- 子类的实例化过程与final关键字
- static关键字特点懒汉式继承-子父类中的构造函数-子类的实例化过程final关键字抽象类接口
- 黑马程序员-继承 子类的实例化和final关键字*
- JAVA final 、super 关键字以及继承关系中父类与子类实例变量初始化的 理解
- 对象实例化过程 final关键字
- 对象实例化过程-------------------- final关键字
- 子类的实例化过程
- 子类的实例化过程
- 子类的实例化过程
- 子类的实例化过程
- 子类的实例化过程
- Java子类实例化过程和Java方法重写与super关键字
- 子类实例化过程
- 子类对象的实例化过程
- 关于子类对象的实例化过程
- 子类对象的实例化过程
- 子类对象的实例化过程
- 子类对象的实例化过程
- PinyinUtils 提取第一个汉子/单词的首字母
- 标签流布局
- 设置SVN忽略文件和目录(文件夹)
- 【BZOJ3659】Which Dreamed It
- 深度学习(二十六)Network In Network学习笔记-ICLR 2014
- 子类的实例化过程与final关键字
- Caffe学习系列(4):激活层(Activiation Layers)及参数
- UIBezierPath精讲
- 黑客工具总结
- 奇异值分解
- json跨域
- 利用存储过程对excel的批量操作
- 【Python Oracle】使用cx_Oracle 连接oracle的简单介绍
- Spring实现AOP的4种方式