一、教材学习笔记(ch5、ch6)
ch5 子类与继承
5.1 子类与父类
- 使用关键字extends来定义一个类的子类;
- Object类是所有类的子类;没有使用extends关键字的类被默认为是Object的子类;
5.2 子类的继承性
- 父类不是private的成员变量作为自己的成员变量,不是private类的方法作为自己的方法;
- UML图:实线的起点是子类的UML图,终点端用一个空心的三角形表示实线的结束;
5.3 子类与对象
- 父类与子类不在同一包中,子类不继承父类的友好成员变量;
zhang instanceof Student
zhang是Student的子类就返回true否则返回false;
5.4 成员变量的隐藏和方法重写
- 子类继承的方法只能操作子类继承和隐藏的成员变量,子类新定义的方法可以操作子类继承和子类新申明的成员变量,但是无法操作子类隐藏的成员变量;
- 重写要求方法的名字,参数个数,参数类型和父类的方法完全相同(方法的类型与父类一致或者是其子类型);
- 重写方法时调用方法和变量没有继承上的限制;
- 重写不允许降低访问权限(public、protected、友好的、private);
5.5 super关键字
- 子类隐藏继承的变量后,变量归super所有;
- 子类不继承父类的构造方法;
- 子类会调用父类的构造方法创建一个子类的对象,如果没有特殊声明,子类就调用父类的不带参数的构造方法;
5.6 final关键字
- final类不能被继承;
- final关键字可以修饰类、成员变量和方法中的局部变量。
5.7 对象的上转型对象
- 通过把子类创建的对象的引用赋给父类创建的对象来得到上转型对象。上转型对象不能操作子类新增的成员变量与方法,但是可以操作子类继承或隐藏的成员变量以及调用子类继承的方法或重写的实例方法。
ch6 接口与实现
- 使用关键字interface来定义一个接口。接口=接口声明+接口体。
- 如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法。在重写接口方法时,要去掉abstract修饰符,给出方法体,并用public修饰。
- public接口可以被任意一个类实现,友好接口可被同一个包里的接口实现。
- import语句可以引入包的类也可以引入包的接口。
- abstract类与接口的比较:
接口与abstract类都能用abstract方法
接口只能有常量,不能有变量;而abstract类既可以有常量,也可以有变量
abstract类中可以有非abstract方法,接口不可以。
二、 输入调试教材第二三章的代码
三、脚本运行结果的截图
遇到的问题:
虚拟机重置
我现在的水平还是个小白皮皮不会,有时候瞎玩虚拟机的时候难免会崩掉。
重装的代价有点大,jdk啥的都得重装,最简单的办法是拷贝别人的vdi文件,然后重新建立一个虚拟机的外壳就行了。
建议平时注意一下数据的备份。