发布日期:2023-03-31来源:武汉北大青鸟武汉校区作者:武汉宏鹏
java学习笔记04-武汉北大青鸟学习java培训笔记。
一、 继承
1. 定义:基于一个已存在的类构造一个新类。继承已存在的类就是复用这些类的方法合属性,在此基础上,还可以在新类中添加一些新的方法和属性。
2. 父类到子类是从一般到特殊的关系。
3. 继承用关键字extends
dog extends Animal :表示狗类继承了动物类
4. Java中只允许单继承(java简单性的体现)
父子类之间的关系是树状关系。(而多继承是网状关系)
5. 父类中的私有属性可以继承但是不能访问。
也可以说父类中的私有属性子类不能继承。
6. 原则:父类放共性,子类放个性。
7. 构造方法不能被子类继承。
二、带继承关系的对象创建的过程
1. 递归的构造父类对象
2. 分配空间
3. 初始化属性
4. 调用本类的构造方法
三、super关键字
1. Super()表示调用父类的构造方法
2. Super()也和this一样必须放在方法的行句。
3. Super().表示调用父类的方法或属性。例:super.m();
4. Super可以屏蔽子类属性和父类属性重名时带来的冲突
5. 在子类的构造函数中如果没有指定调用父类的哪一个构造方法,那么就会调用父类的无参构造方法,即super()。
四、白箱复用和黑箱复用
1.白箱复用:又叫继承复用,子类会继承父类所有的东西,
从某种程度上说白箱复用破坏了封装。是一种is a的关系。
例:class Liucy{
public void teachCpp(){
System.out.println("Teach Cpp");
}
public void chimogu(){
}
}
class Huxy extends Liucy{
}
2、黑箱复用:又叫组合复用,是一种has a的关系。
例:class Liucy{
public void teachCpp(){
System.out.println("Teach Cpp");
}
public void chimogu(){
}
}
class Huxy {
private Liucy liucy = new Liucy();
public void teachCpp(){
liucy.teachCpp();
}
}
原则:组合复用取代继承复用原则。
使我们可以有机会选择该复用的功能。
五、多态
1. 定义:所谓多态是指一个对象可以有多种形态,换句话说多态使我们可以把一个子类对象看作是一个父类对象类型( 例:father A = new child() ) 。多态指的是编译时的类型变化,而运行时类型不变。
2. 多态分为两种:编译时多态和运行时多态。
编译时类型:定义时类型(主观概念)把它看作什么。
运行时类型:真实类型(客观概念) 实际上他是什么。
重载又叫编译时多态,覆盖又称运行时多态。
在方法重载的情况下,参数类型决定于编译时类型。
3. 多态的作用:在我们需要一类对象的共性时,我们可以很容易的抽取。并且可以屏蔽不同子类对象之间我们所不关心的差异。多态使我们有机会写出更通用的代码,以适应需求的不断变化
4. 多态常见的变化:
(1)、多态用在方法的参数上
(2)、多态用在方法的返回类型上
5. 运行时多态的三原则:
(1)、对象不变(改变的是主观认识)
(2)、对于对象的调用只能限于编译时类型的方法。
(3)、在程序的运行时,动态类型判定。运行时调用运行时类型,即他调用覆盖后的方法。
六、java中的覆盖(Override)
1、 参数表、方法名必须完相同,访问修饰符要求子类宽于父类。返回值类型在JDK1.5以前要求完相同,
1.5以后可以父类返回一个对象a,子类返回一个该对象a的子类也是覆盖。子类方法覆盖父类方法时要求子类方法的访问修饰符宽于或等于父类的访问修饰符。
2、 为什么面向对象中要有方法覆盖?
覆盖允许子类用自己特色的方法去替换调父类已有的方法。
3、 父类中的私有方法与子类中任何方法不够成覆盖关系,
也就是说只有父类被子类继承过来的方法,才有可能与子类自己的方法构成覆盖关系。
4、少覆盖原则:如果子类覆盖了父类过多的方法,那么我们要重
新思考一下这两个类之间到底是不是继承关系。
注:子类的属性和父类的属性同名时叫遮盖(区覆盖)
属性的遮盖是没有多态的。
七、关系运算符:instanceof
1. boolean c = a instanceof b;
a:对象变量;b:类名;c:逻辑型返回值。
如果可以把a对象看作是b类型,那么返回真。否则返回假。
2. instanceof一般用于在强制类型转换之前判断对象变量是否可以强制转换为指定类型。
String [] args 命令行参数在用java命令运行程序时输入:
如:java TestOverLoad 参数1 参数2 参数3。。。。。。。
Copyright (c) 2006-2023 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.