Java 初学者-类与对象2
今天学习了什么?
今天学习了面向对象的继承的特征。
继承格式
class 类名 extends 父类名{
类体;
}
- 1.B 类继承A类,则A类是超类,父类,基类。B类是子类,派生类,扩展类。
2.只支持单继承,不支持多继承。
3.子类继承父类,不能继承private与构造方法。
4.Java中未继承的类默认继承Object类
- 方法重载:就是在同一个类中,方法的名字相同,但参数个数、参数的类型或返回值类型不同!
方法重写(覆盖):它是指子类和父类的关系,子类重写了父类的方法,但方法名、参数类型、参数个数必须相同!
- ● 方法覆盖发生在具有继承关系的父子类之间,这是首要条件;
● 覆盖之后的方法与原方法具有相同的返回值类型、相同的方法名、相同的形式参数列表;
● 另外,在使用方法覆盖的时候,需要有哪些注意事项呢?
● 由于覆盖之后的方法与原方法一模一样,建议在开发的时候采用复制粘贴的方式,不建议手写,因为手写的时候非常容易出错,比如在Object类当中有toString()方法,该方法中的S是大写的,在手写的时候很容易写成小写tostring(),这个时候你会认为toString()方法已经被覆盖了,但由于方法名不一致,导致最终没有覆盖,这样就尴尬了;
● 私有的方法不能被继承,所以不能被覆盖;
● 构造方法不能被继承,所以也不能被覆盖;
● 覆盖之后的方法不能比原方法拥有更低的访问权限,可以更高(学习了访问控制权限修饰符之后你就明白了);
● 覆盖之后的方法不能比原方法抛出更多的异常,可以相同或更少(学习了异常之后就明白了);
● 方法覆盖只是和方法有关,和属性无关;
● 静态方法不存在覆盖(不是静态方法不能覆盖,是静态方法覆盖意义不大,学习了多态机制之后就明白了);
明天计划学习什么?
计划学习面向对象的最后一个特征多态。