强调:一定用自己的话总结,避免抄文档,否则视为作业未完成。

this关键字的作用

  1. 局部变量和成员变量存在二义性,也就是变量名有歧义。为了解决该问题
  2. this关键字。

为成员变量设置值, 构造器和setter方法的选择,为什么?

  1. 构造器和setter方法都可以给对象设置数据:
  2. 构造器,在创建对象的时候设置初始数据,只能初始化一次。
  3. setter方法,创建对象后再设置初始数据,可以设置多次。

为什么需要继承?

  1. 为了解决代码重复,多个类存在共同代码的问题

Java中的继承语法

  1. public class 父类名{
  2. // 存放多个子类共同的字段和方法
  3. }
  4. public class 子类名 extends 父类名{
  5. // 存放自己特有的(独有的)字段和方法
  6. }
  7. Java中类只支持单继承,但是支持多重继承。也就是说一个子类只能有一个直接的父类,父类也
  8. 可以再有父类。

子类能从父类中继承到哪些成员?

  1. 子类继承父类之后,可以拥有到父类的某一些成员(字段和方法),根据访问修饰符来判断:
  2. 如果父类中的成员使用publicprotected修饰,子类都能继承.
  3. 如果父类和子类在同一个包中,使用缺省访问修饰的成员,此时子类可以继承到
  4. 如果父类中的成员使用private修饰,子类继承不到。private只能在本类中访问
  5. 父类的构造器,子类也不能继承,因为构造器必须和当前的类名相同
  6. 记住一句话:子类继承父类的非私有成员(字段和方法),但构造器除外。

子类什么时候需要覆盖父类中的方法?

  1. 是当继承父类的某个方法不适合子类本身的特征时,子类覆盖父类中的方法

方法覆盖的规则

  1. 1. 方法签名必须相同 (方法签名= 方法名 + 方法的参数列表)
  2. 2. 子类方法的返回值类型:要么和父类方法的返回类型相同,要么是父类方法返回值类型的子类
  3. 3. 子类方法的访问权限 >= 父类方法访问权限
  4. 如果父类方法是private,子类方法不能重写。==> 重写建立在继承的基础上,没有继承,就
  5. 不能重写。
  6. 4. 子类方法中声明抛出的异常小于或等于父类方法声明抛出异常类型

super关键字的作用

  1. 在子类中的某一个方法中需要去调用父类中被覆盖的方法,此时使用super关键字

什么时候需要把父类中的方法定义成抽象方法?

  1. 1>该方法没有方法体 时,要把父类中的方法定义成抽象方法
  2. 2>要求子类必须覆盖该方法

抽象类应该怎么使用?可以直接使用抽象类创建对象吗?

  1. 使用abstract修饰,没有方法体,留给子类去覆盖
  2. 抽象方法必须定义在抽象类或接口中
  3. public abstract class 类名 { }
  4. 不能用抽象类创建对象

抽象类的意义是什么?

  1. 当有一些方法需要默认实现时,使用抽象类