Unit8 继承部分学习笔记

1.为什么要使用继承(目的)?

  • 答:类的重用:重复使用已有的类

2.UML中类的继承怎么表示?

  • 继承的关键词是:extends
  • 父类(super class)和子类(sub class)

3.继承的语法规则是什么?

  • 父类中的属性和方法可以被继承,但是是有条件的;到底能不能继承,主要看访问控制符private、默认、protected、public。

4.访问控制符的使用规则是什么?

  • 访问控制符能修饰什么?类,属性,方法,但是不能修饰局部变量.

java重写父类show方法 java如何重写父类构造方法_父类

java重写父类show方法 java如何重写父类构造方法_子类_02

  • private不可以被继承,也不能修饰外部类和局部变量,可以修饰属性、构造方法和一般方法。
  • protected不可以修饰外部类和局部变量,可以修饰属性、构造方法和一般方法。
  • public不能修饰局部变量
  • 构造方法能否被private和protected修饰? 答:能

5.构造方法能被继承么?

  • 答:不能。

6.创建子类对象时,父类的构造方法会被调用吗?

  • 答:会,创建子类的时候,父类的无参构造方法会被自动(默认)调用,但是不能被继承。

7.super怎么用?

  • super有两个用处:
  • 1.调用父类构造方法
  • 2.调用父类的一般方法和属性
  • super:代表父类,指明调用父类有参数构造方法。
  • super是java关键字
  • super调用构造方法的时必须在第一行
  • 创建子类的时候,父类的无参构造方法会被自动调用

8.额外的题:

(1)父类没有无参构造方法,还能创建子类对象吗?
  • 可以,用super明确调用即可。
(2)子类方法中如何调用父类的一般方法?
  • 答:直接使用即可。
(3)面试题:父类的构造方法能否被子类继承?
  • 答:不能,能继承属性和一般方法。
(4)子类方法中如何使用父类的同名属性?
  • 直接用打印的子类本身属性,super.打印的父类的同名属性

9.方法重写Override的规则是什么?

  • 方法的重写(Override)又叫覆盖;
  • 方法的重写规则:
  • 1.方法名相同
  • 2.参数列表相同(类型)
  • 3.返回类型相同
  • 4.访问控制符和原来一样或更为宽松
  • 构造方法不能被重写,因为能重写的一定是能被继承过来的,构造方法不能被继承,所以不能被重写。

10.方法重载Overload的规则是什么?

  • 方法的重载Overload:在一个类里有同名的方法,这就是重载。
  • 重载的规则:
  • 1.方法名字相同
  • 2.参数列表必须不同
  • 3.返回类型和修饰符不限

11.构造方法能不能重载?

  • 答:可以。

12.this怎么用?

  • this代表当前类对象,this放在哪个类里,this就代表那个类的对象;它是Java的关键字
  • this有两方面用处:
  • 1.调用方法或使用属性
  • 2.this调用构造方法
  • this调用构造方法必须在第一行:因此super和this不能同时出现
  • this和super不能在static方法中使用

13.对象构造次序解析?

  • 创建子类对象,父类构造方法先执行,有游离块的话,游离块先执行
  • 父类的先办完,在办子类的

14.Object类有什么特性?

  • Object是顶级父类,位于继承关系的最顶端

15.如何重写toString等方法?

//重写Object类的toString方法
public String toString() { 
	return "大家好!"; 
}

16.重点总结

1.为什么使用继承?
  • 答:类的重用。
2.Java中是否支持多重继承
  • 答:不支持。
3.面试题:Override和Overload的区别?
  • (1)重写是发生在有继承关系的类之间
  • (2)重载是在一个类内部
  • (3)规则不同
4.子类对象实例化(构造次序)过程
  • (1)父类游离块
  • (2)父类构造方法
  • (3)子类游离块
  • (4)子类构造方法
5.this和super的区别和作用?
  • super代表父类对象;this代表当前对象
  • super有两个用处:1.调用父类构造方法2.调用父类的一般方法和属性;this有两方面用处:1.调用方法或使用属性2.this调用构造方法
  • super()调父类构造方法,super. 调父类的一般方法或属性;this() 调本类构造方法,this. 调本类的一般方法或属性
6.访问控制符的作用范围?
  • private不可以被继承,也不能修饰外部类和局部变量,可以修饰属性、构造方法和一般方法。
  • protected不可以修饰外部类和局部变量,可以修饰属性、构造方法和一般方法。
  • public不能修饰局部变量
  • 构造方法能否被private和protected修饰? 答:能