跳过正文
  1. 全部/
  2. 笔记/
  3. 面试/
  4. Java/

面向对象

目录

封装
#

  1. 修改属性的可见性来限制对属性的访问
  2. 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问

继承
#

extends 和 implements
#

 extends  implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口

super 与 this 关键字
#

final 关键字
#

final 可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类方法和对象方法)和类。

使用 final 关键字声明类,就是把类定义定义为最终类,不能被继承,或者用于修饰方法,该方法不能被子类重写:

构造器
#

子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。

如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器。

多态
#

  • 子类继承父类
  • 子类重写父类的方法
  • 父类引用指向子类的对象

向上转型,也叫做自动类型转换,子类型赋值给父类型(父类型的引用指向子类型),构成多态 向下转型 向下转型,也叫做强制类型转换,父类型赋值给子类型。当使用多态时,并且访问子类独有的属性或方法时,则必须进行向下转型

1. 重写
#

重写(Override)
#

重写(Override)是指子类定义了一个与其父类中具有相同名称、参数列表和返回类型的方法,并且子类方法的实现覆盖了父类方法的实现。

重写的好处在于子类可以根据需要,定义特定于自己的行为。也就是说子类能够根据需要实现父类的方法。这样,在使用子类对象调用该方法时,将执行子类中的方法而不是父类中的方法。

虚拟方法调用指的是:在运行时(而不是编译时)根据对象的实际类型(而非引用类型)来决定调用哪个版本的方法,这种在运行时被动态调用的方法即为虚拟方法。

重载(Overload)
#

重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

最常用的地方就是构造器的重载。

2. 接口
#

  1. 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
  2. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
  3. 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
  4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。

3. 抽象类
#

抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。

由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。

抽象方法
#

Reply by Email