面向对象(3)继承

①如何继承一个类?

1、首先根据开发需求确定哪个类充当子类,充当父类

2、一般情况下,具有公共属性、公共方法的组件充当父类

将公共方法进行扩展的类充当子类。

3、在代码上通过关键字extends实现继承关系

4、子类在前,父类在后;子类 extends 父类

5、只有单继承,(一个子类只有一个直接父类)

但是可以多层继承。

6、继承具有传递性

7、在java体系中,Object类是所有类的祖宗类,

都直接或间接继承自object类,称为基类(超类)

◆◆◆◆◆面试题:请说出Object类的所在的包名和几个常用的方法的含义

②使用继承有什么好处?

1、代码复用,在开发过程中减少代码量

2、提高软件的扩展性

3、在企业级开发过程中,方便分工协作,提高代码效率,降低开发成本

③如何通过super调用父类的属性,方法和构造方法?

(拿的都是父类的对应的构造方法,如果父类没有就会报错,找不到亲爹)

1、子类具有调用父类元素的权限

2、使用关键字super调用父类元素

(调用默认构造方法super()或super(参数1,参数2))

调用构造方法时必须放在构造方法中并且是第一行

有时候是可以省略的

④抽象类和抽象方法的特点是什么?二者是什么关系?

1、使用abstract修饰的类(方法)成为抽象类(方法)

2、抽象类不能实例化(创建对象)但有构造方法!!!!!

3、抽象类中不一定拥有抽象方法,与有无抽象方法无关;

4、抽象类存在子类,并且子类去完成抽象类中抽象方法

如果抽象类中有多个抽象方法时,强烈推荐子类完成所有

抽象方法,否则将子类定义为抽象类。

(不然会报错,子类必须实现抽象类中的抽象方法,一直靠后代去完成)

5、抽象方法的特点在类中定义时只有声明,没有方法体

也就是说没有功能的具体实现

二者关系:抽象类中可以有或者没有抽象方法。

抽象方法存在于抽象类或者接口中

⑤子类不能继承父类的哪些财产?

财产:属性、方法(成员方法,构造方法,抽象方法)

1、子类不能继承父类私有的属性、方法

2、子类不能继承父类的构造方法(哪怕是punlic修饰的)

3、子类不能继承final修饰的财产

⑥方法重写必须满足的要求是什么?

1、方法重写是在继承关系的基础之上存在的

2、子类根据开发需求重写(覆盖)父类中的方法

3、方法重写:A:重写方法名与被重写的方法名一致

B:形式参数列表相同

C:返回值相同或者是其子类

D:权限修饰符作用范围不能缩小

◆◆◆◆◆面试题:请说出方法重写和方法重载(覆盖)的区别

A:方法重载发生在一个类中,重写发生在子类和父类

两个类中

B:方法重载时,形参列表不同,重写时形参列表与父类

完全相同;

C:方法重载与返回值类型无关,重写时必须是父类中的返回值

类型相同或者是其子类

D:方法重载与权限修饰符无关,重写是子类的权限修饰符的作用范围

不能缩小(可以大于等于权限范围)

⑦abstract关键字可以修饰什么?不能修饰什么?

1、可以修饰类、方法;

2、不能修饰属性、构造方法

⑧它和哪三个关键字不能同时修饰一个方法或者类?

static private final 修饰一个方法或者类

⑨final关键字可以修饰什么?不能修饰什么?

1、final修饰的类没有子类,不能被继承(断子绝孙)

2、final可以修饰方法,此时该方法不能被重写

3、final可以修饰变量,赋初始后值不可改变,变成常量

⑩在多级继承条件下构造方法的调用规则是什么?

1、在构造方法中没有super关键字和this关键字调用构造方法的前提

在调用构造方法中会逐级往上执行,直到Object,然后从上到下执行

2、在构造方法中有super关键字和this关键字,即显式(super(),this())

◆Object类的相关知识点?

1、了解Object类存在的物理包rt

2、了解Object累的逻辑包java.lang.Object

3、Object是其他类的祖先,有时候成为基类和超类

4、了解Object类中的常见的方法和常见的修饰符(关键字)

猜你喜欢

转载自blog.csdn.net/formydream111/article/details/82465320