听写作业:
1.访问修饰符
包外 子类 包内 类内
public yes yes yes yes
protected no yes yes yes
default no no yes yes
private no no no yes
2.子类构造执行过程
从main函数--->到子类构造--->不进入 子类构造体,走父类构造--->执行父类构造体--->
返回子类构造--->执行子类构造体--->回到main函数
3.手写断点调试子类构造的执行过程
在父类构造和子类构造和main函数实例化子类时依次打断点
(执行断点调试必须切换到main函数下)--->点小昆虫-->debug as--->
Java Application--->点yes--->F5单步执行,观察变量变化
4.多态初步:两种多态实现方式
1)子类和父类都是普通类(并且有继承关系),只要有同名方法,就是多态
//父类
public class Parents{
public void eat(){
System.out.Println("父类");
}
}
//子类
public class Child extends Parents{
public void eat(){
System.out.Println("子类");
}
}
//测试类
Parents parents=new Child();
parents.eat();
2)抽象类实现多态
//父类
public abstract class Anmail{
public abstract void eat();
}
//子类
public class Cat extends Anmail{
@Override
public void eat(){
System.out.println("吃");
}
}
// 测试类
Anmail anmail =new Cat();
anmail.eat();
5.final关键字的三种使用场景
final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,
供垃圾收集时的其他资源回收,例如关闭文件等
6.子类不能继承父类的哪些成员
(子类和父类不在同包,使用默认访问修饰符的)
1).默认访问修饰符
friendly
package级别的
-
.构造也不能被子类继承
7.抽象类和抽象方法的注意事项虚方法可以选择性的被子类重写,抽象方法强制子类重写
-
一个类用abstract修饰,就是抽象类
-
抽象类不能实例化
-
抽象方法不能有方法体,甚至连{}都不能有
-
抽象方法只能存在于抽象类中
-
抽象方法存在的目的,就是为了约束子类中方法存在的形式(参数列表和返回值类型)
-
抽象类不能是静态类(static)或者密封类(sealed)
-
抽象类中的所有抽象方法都必须被子类重写,除非子类本身也是一个抽象类
8.Java中四类八种值类型java四类八种基本数据类型
第一类:整型 byte short int long
第二类:浮点型 float double
第三类:逻辑型 boolean(它只有两个值可取true false)
第四类:字符型 char
9.手工绘制类图
10.Static内存的理解static的方法或变量是在类装载的时候分配内存空间,而且只存在一处。所有对象都是对这一块内存区域的引用。
11.你眼中的this和basethis可以调用到自己本身的属性以及父类的属性
base可以调用到父类的属性