1、继承的概念和实现
- 生活中,继承的例子随处可见
继承需要符合的关系:is-a,父类更通用更抽象、子类更特殊更具体
- 继承背后的思想就是基于已存在的类来构建新类
- 当从已存在类继承时,就重用了它的方法和字段,还可以添加新的方法和字段来定制新类以应对需求
- 约定:从其它类导出的类叫子类,被导出的类叫父类
- 在Java中,除了Object类之外,所有类都是子类,都有唯一的父类
- 继承在类中不可或缺
- 创建一个类时,总是在继承
- 类之间关系
一Is-a 继承体现
一Has-a 组合体现
一Like-a 实现接口体现
- 继承的意义
一代码重用
一体现不同抽象层次
- 父子类关系
一父类更抽象,更一般
一子类更具体,更特殊
- extends关键字
一在Java语言中,用extends关键字来表示一个类继承了另一个类
public class Teacher extends Person{ //其余代码省略 }
2、super关键字
- super关键字特点
一super和this关键字的特点类似:super代表的是父类对象的引用
一当子父类的成员出现同名时,可以通过super来进行区分
一子类的构造方法中,通过super关键字调用父类的构造方法
public class Teacher extends Teachers{ public Teacher (String name,String school){ super(name,school); //通过调用父类的构造方法,完成对相关字段值的初始化 } }
强调:当构造一个子类对象的时候一定会先调用父类的构造方法来构造父类的对象。调用父类构造方法的语句必须是子类构造方法中的第一条指令。3、方法重写-override
- 什么是方法重写(override)
- 方法重写是指子类可以根据需要对从父类继承来的方法进行改写,是多态机制的前奏
- 方法重写注意点:
一重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值。
一重写方法不能使用比被重写方法更严格的访问权限。
一父类中的私有方法不能被重写。
一在子类重写的方法中继续调用父类父类被重写的方法可以通过调用super.函数名获取。
4、final关键字
- final关踺字的特点
一final可以用来修饰变量、方法、类。
一final修饰的变量是一个常量。一旦赋了值就不能在修改。(常量一般都和static关键字配合使用)
一final修饰类代表此类不能被继承。
一final修饰方法代表此方法不能被重写。
5、Object类常方法
- Java中,所有类都直接或间接继承自java.lang.Object类,可以说
Object 是Java中所有类的祖先即根类
- Java中任何类都继承了Object类中的方法,主要有
一toString()(常用)
一equals()(常用)
一hashcode()
一clone()
一getClass()
一finalize()
- String toString()
一返回该对象的字符串描述性信息。默认输出的格式是:类名[字段值,字段值……];
一只要对象与一个字符串通过“ “连接,系统就会自动调用toString()以获得对象的字符串描述;
一常被改写:可以根据用户的需要对其进行重写。
- boolean equals()
一Object类原始功能是实现判断两个对象是否具有相同的引用;要求判断两个对象状态的相等性;
一在jdk标准库中提供了一些类,比如前面所讲的String,后续所要讲的Date。他们都对equa|s方法进行了重写;
一常被改写:可以根据用户的需要对其进行重写。
6、课程总结
,
- 继承的概念和实现
- super关键字
- 方法重写-Override
- final关键字
- Object类常方法