**
-------面向对象 继承-----------
**
-
继承的概念理解及练习
继承: 就是一个is a 的关系,是一个xx 的关系。
继承发生与子父类中, 子类,继承父类,那么可以使用父类的属性和方法。
这样,就减少了代码重复,使代码简洁。继承使用的关键字: extends 继承于。
使用方法: 类的声明上标准 子父类关系。
例如:class Dog extedns Anmail { } 狗类继承于 动物类。继承关系中:
把所有子类共用的一些,属性,和方法,可以抽取到父类中。
这样子类中不用每个子类都定义这个方法了。测试类中: 测试,分别创建 学生,老师 工人类对象。
设置属性,调用方法。重要概念点: java中所有类的顶层父类,Object 类。
完善,
1 在person、 中,继续封装一个输出打印所有属性值的方法。
2 在吃饭和睡觉的方法中, 调用方法的时候,输出当前对象的名字。
提示: this 关键字,代表当前对象的引用。 -
this 和super 关键字
this 代表的是当前对象的引用。
使用场景: 在 类中,访问当前的成员位置的属性 和方法的时候用到。
在构造方法,或者自定义方法中使用。super 代表的是当前父类对象的引用。
在构造方法,或者自定义方法中使用。
通过super 关键字,访问到父类的 属性。及方法。
3 -继承下构造方法的执行过程
练习: 在Person、 类中,创建一个无参构造,创建一个有参构造。
分别在构造方法中,写一句代码:输出当前执行的是什么构造。
在他子类中,不写构造方法的时候。
创建子类对象
结果:
创建子类对象的时候,父类的构造方法也执行了,说明父类也执行了构造方法。
查看输出打印结果,了解父类构造,执行时机
继承关系: 只能单继承,但是可以多层继承。
4 . 子类重写父类方法
方法重写:方法名相同,子父类关系中,子类重写父类定义过的方法。称之为方法的重写。
子类,重写父类方法的意义: 功能代码完善,或者形成独特的功能。
方法重载:方法名相同,在同一个类中,定义的多个同名方法。
方法名相同,参数列表不同,与返回值无关。
参数列表不同: 包含,个数,顺序,类型不同。
get() set() toString() 都是重写的Object 类的。
练习: 动物类,共有的属性和方法
猫
狗
-
抽象类和抽象方法的使用
abstract 抽象的 abstract 修饰的类: 不能被创建实例对象。 abstract 修饰的方法: 不能有方法体。 例如:public abstract void eat(); //变成了抽象的方法!强制子类必须重写! 被抽象的东西,是希望子类来具体实现。 包括 类的具体对象,及类的具体方法。
练习: 把 animal 类,用 abstract 修饰。抽象类。
把吃饭的方法,修改为, abstract 修饰的方法。抽象方法
- final修饰属性、方法和类
final 最终的,不会改变的。
final 修饰的类,为最终的类,不可被继承。
final 修饰的方法,为最终的方法,不可被重写。
final 修饰的变量,为常量。不可重新赋值。