Java 类的继承
来源:互联网 发布:c语言菜单设计模板 编辑:程序博客网 时间:2024/05/16 00:46
1. 继承的概念
从类的结构上而言,其内部可以有如下四种常见形态:属性(包括类属性和实例属性)、方法(包括类方法和实例方法)、构造器和初始化块(包括类的初始化块和实例的初始化块)。对于继承中的初始化顺序,又具体分为类的初始化和对象的初始化。
类初始化:
在jvm装载类的准备阶段,首先为类的所有类属性和类初始化块分配内存空间。并在类首次初始化阶段中为其进行初始化,类属性和类初始化块之间的定义时的顺序决定了其初始化的顺序。若类存在父类,则首先初始化父类的类属性和类初始化块,一直上溯到Object类最先执行。
对象初始化:
继承在本质上是 特殊 —— 一般 的关系,即常说的is-a关系。子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法。在Java中使用extends关键字来标识两个类的继承关系。
从类的结构上而言,其内部可以有如下四种常见形态:属性(包括类属性和实例属性)、方法(包括类方法和实例方法)、构造器和初始化块(包括类的初始化块和实例的初始化块)。对于继承中的初始化顺序,又具体分为类的初始化和对象的初始化。
类初始化:
在jvm装载类的准备阶段,首先为类的所有类属性和类初始化块分配内存空间。并在类首次初始化阶段中为其进行初始化,类属性和类初始化块之间的定义时的顺序决定了其初始化的顺序。若类存在父类,则首先初始化父类的类属性和类初始化块,一直上溯到Object类最先执行。
对象初始化:
在new创建对象时,首先对对象属性和初始化块分配内存,并执行默认初始化。如果存在父类,则先为父类对象属性和初始化块先分配内存并执行初始化,然后执行父类构造器中的初始化程序,接着才开始对子类的对象属性和初始化块执行初始化。
3. 继承中的this和super
当对象属性和方法中的局部变量名称相同时,在该方法中需要显式的使用this作为主调,以表示对象的属性,若不存在此问题,可以不显式的写this。其实,其牵涉到的一个问题就是变量的查找规则:先局部变量 => 当前类中定义的变量 => 其父类中定义的可以被子类继承的变量 => 父类... super表示调用父类中相应的属性和方法,在方法中,若需要调用父类的方法时,也一定要写在第一行。当重写父类方法时,修改方法的修饰权限只能从小的范围到大的范围改变,例如,父类中的方法修饰权限为protected,继承后子类中的方法的修饰权限只能修改为public,不能修改为private。
0 0
- java 类的继承
- Java类的继承
- java 类的继承
- java类的继承
- java类的继承
- java 类的继承
- Java类的继承
- java类的继承
- Java类的继承
- Java类的继承
- java类的继承
- Java 类的继承
- java 类的继承
- java类的继承
- java类的继承
- java类的继承
- Java类的继承
- Java 类的继承
- Android 中对于图片的内存优化方法
- Hadoop集群搭建遇上的问题
- 多边形裁剪圆的实现细节之求直线段与圆的交点
- Android 获取本地外网IP、内网IP、计算机名等信息
- IDF实验室:倒行逆施--python ByteCode
- Java 类的继承
- 第十周项目4——类族的设计(3)
- hdu 2833 WuKong【floyd】
- 【leetcode】Rotate List
- 利用VML标记语言画图、动画制作
- Codeforces Round #149 (Div. 2) Dispute (队列+容器模拟)
- 【java之路】我的java之路
- Let the Balloon Rise
- 状态位