java学习笔记-父与子的关系
来源:互联网 发布:phpci连接不上数据库 编辑:程序博客网 时间:2024/06/08 08:00
父类 a= new 子类()
1、父类中private的方法,可以被重写,但是不能被继承。如果被重写了,那么:父类 a=new 子类(),运行的时候,调用的是子类的private方法。
2、为什么子类对象在初始化的时候,要先访问下父类的构造函数:
因为父类的数据子类可以直接获取,所以子类对象在建立时,需要查看父类是如何初始化这些数据的
3、类的继承知识点
(1)java不支持多重继承,也就是说子类至多只能有一个父类
(2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法
(3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承
(4)子类中定义的成员方法,并且这个成员方法的名字,返回类型,及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。
4、super关键字
super关键字在java中的作用是使被屏蔽的成员变量或者成员方法或变为可见,或者说用来引用被屏蔽的成员变量和成员成员方法。super是用在子类中,目的是访问直接父类中被屏蔽的成员。上面的代码也可以这样写:
Java代码
public abstract class A {
int i=1;
public void printI() {
System.out.println("i="+i);
}
}
public class B extends A{
public int i=2;
public void printI(){
super.printI();
}
public static void main(String[] args){
B b= new B();
b.printI();
}
}
注:
JVM实例化程序的过程中,若对子类进行实例化,必然要对父类的构造器进行实例化继承。
C exteds D(){}
C c = new C();
构造器,采取先父后子的关系。
而方法,若调用的方法为子类所覆盖,则主动调用儿子的方法,因为此时,已经继承了父类所拥有的
相关变量,而方法行为,子类具有相对来说的独立性,可以独立调用。
D c = new C();
JVM处理过程,也是如此。
先继承D的构造器(基因),再加载C独自的构造器,同时,对相关方法进行相应的调用。
5、父类子类对象初始化顺序
1,在类加载的时候执行父类的static代码块,并且只执行一次(因为类只加载一次);
2,执行子类的static代码块,并且只执行一次(因为类只加载一次);
3,执行父类的类成员初始化,并且是从上往下按出现顺序执行(在debug时可以看出)。
4,执行父类的构造函数;
5,执行子类的类成员初始化,并且是从上往下按出现顺序执行。
6,执行子类的构造函数。
- java学习笔记-父与子的关系
- JAVA与模式学习笔记之关系的概念
- java学习笔记----类与类之间的关系
- Java子类与父类调用关系学习笔记
- 【Java学习笔记】类之间的关系
- [笔记]JavaScript与Java的关系
- 【学习笔记11】java面向对象-接口与类、接口与接口之间的关系
- 子表达式与()的关系
- Java学习笔记45:Java 线程与主线程之间的变量关系
- 【数据库学习笔记】(3)SQL数据类型与Java数据类型的对应关系
- 《JAVA与模式》学习笔记之类图中的关系
- 《JAVA与模式》学习笔记之类图中的关系
- java学习个人笔记---容器之Map与Set关系
- 子节点的位置与父节点位置的关系
- 设置父视图的透明度与子视图的关系
- ztree 的 父节点与子节点的关系
- 父窗口与子窗口的层次关系
- WPF:父窗口与子窗口的层次关系
- 一些关于识别的胡思乱想
- 给dubbo接口添加白名单——dubbo Filter的使用
- https://segmentfault.com/u/manxisuo这个node大神
- svn分支开发与主干合并(branch & merge)
- 分别用Java应用程序和Applet程序实现星星三角形图案的绘制
- java学习笔记-父与子的关系
- java中的多线程
- 编译过程
- 容斥
- 二分查找
- 可以让布局旋转的xml属性
- jersey服务调用python脚本并动态传参
- 面部识别辅助监控系统 人工智能为城市安全保驾护航
- 后台管理系统模板随意切换插件