您的位置:首页 > 编程语言 > Java开发

【职坐标】java面向对象三大特性(二)——继承详解

2016-07-13 10:57 417 查看
【职坐标】java面向对象三大特性(二)——继承详解

a) 什么是继承?

i. 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可

b) 为什么要使用继承?

i. 提高代码的复用性。

ii. 让类与类之间产生了关系,是多态的前提

c) 怎么使用继承?

i. 通过 extends 关键字让类与类之间产生继承关系 (注:子类可以直接访问父类中的非私有的属性和行为。)

ii. 子类和父类同名方法执行顺序的优先级

iii.
简单讲解四种访问修饰符及其权限

d)访问修饰符

1. private访问控制符

只能在这个类的内部使用。

2. 默认访问控制符

默认的访问控制成员可以被这个包中的其它类访问。(如果一个子类与其父类位于不同的包中,子类也不能访问父类中的默认访问控制成员和方法)

3. protected访问控制符

成员既可以被同一个包中的其它类访问,也可以被不同包中的子类访问。

4. public访问控制符

成员可以被所有的类访问,不管访问类与被访问类是否在同一个包中。

e) Java语言继承的特点

1. 单继承(一个儿子只能有一个爹)

2. 多层继承

f) super关键字

1. Super关键字的用途:在子类中引用父类中的成员变量和方法

2. Super关键字的使用场景

a) 当子父类出现同名成员时,可以用super进行区分

b) 子类要调用父类构造函数时,可以使用super语句

3. 对比this关键字和super关键字的区别

a) 变量、方法和构造方法的调用(注:在调用构造方法时super();和this();都是在构造函数的第一行,不能同时出现。)

方法覆盖(方法的重写)

1. 在继承中什么情况是方法的覆盖

a) 子类中出现与父类一模一样的方法时(除了权限修饰符,返回值类型,方法名和参数列表相同),会出现覆盖操作,也称为重写或者复写

b) 注:父类私有方法,子类看不到,因此父类私有方法的重写也就无从谈起。(权限比默认的大都可以重写)(默认的需注意要父类和子类要在同一个包中)

2. 为什么要使用方法重载?

a) 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以复写父类中的方法,这样,既沿袭了父类的功能,又定义了子类特有的内容。

3. 使用方法重写时的注意事项

a) 重写方法时,子类的方法权限一定要大于等于父类的方法权限(不包括父类的private)

4. 方法重写和方法重载的区别

a) 根本区别:方法重写发生在有继承关系的两个类中,方法重载发生在一个类中

b) 方法重载的两个方法,方法名相同,方法签名不同,而方法的重写用在子类方法与父类方法的方法签名一模一样

5. Equals方法的重写(逻辑+快捷键)(为什么要重写equals)

6. 上下转型(优缺点)

a) 上转型 安全(子类转父类)

b) 下转型 (不安全)

什么时候要使用继承?(合理使用继承)

1. 如果类之间存在着IS-A的关系,就可以考虑使用继承

a) 对比is – a (继承关系)讲解Has-a(组合关系)

2. 注意:不要为了继承部分功能而去使用继承(举例说明)

e) 抽象类(构造方法)

1. 什么是抽象类?

a) 包含抽象方法的类(强调接口)

2. 为什么要使用抽象类?

a) 如果某个方法在父类中实现出来没有任何意义,必须根据子类的实际需求来进行不同的实现,那么就可以将这个方法声明为抽象方法,此时这个类也就成为抽象类类

3. 抽象类和普通类的区别

a) 抽象方法必须为public或者protected,缺省情况下默认为public。

b) 抽象类不能用来创建对象;

c) 如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为abstract类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: