java八股文之面向对象

构造方法有哪些特点?是否可被 override?

  • 方法名与类名相同。
  • 没有返回值,但是不能用void声明构造函数
  • 生成类的对象时,自动执行。
  • 不能被override但是可以重载。

面向对象三大特性

  • 封装:把一个对象的属性隐藏在对象内部,,不允许外部对象直接访问对象的内部信息,但是会提供一下可以被外界访问的方法来操作属性。
  • 继承:
    • 子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的中的私有属性和方法,子类无法访问,只是拥有。
    • 子类可以拥有自己的属性和方法,即子类可以对父类进行拓展。
    • 子类可以用自己的方法事项父类的方法。
  • 多态
    • 对象类型和引用类型之间具有继承(类)/实现(接口)的关系。
    • 引用类型变量发出的方法调用的 到底是哪个类的方法,必须在程序 运行期间才能确定。
    • 多态不能调用,只在子类存在但在父类不存在的方法。
    • 如果子类重写了父类的方法,真正执行的是子类 覆盖的方法,如果子类没有覆盖父类的方法,执行的是父类的方法。

接口和抽象类有什么相同和不同

  • 共同点:
    • 都不能被实例化
    • 都可以包含抽象方法
    • 都有可以默认实现的方法
  • 不同
    • 接口主要对垒 的行为 进行约束 ,你实现了某个接口就具有了对应的行为。抽象类主要用于代码复用,强调所属关系。
    • 一个类只能拥有一个父类,但是 可以实现多个接口
    • 接口中的成员变量只能是 public static  final  类型的,不能被修改且必须有初始值,而抽象类的成员变量默认default,可在子类中被重新定义,也可被重新赋值。

深拷贝和浅拷贝,引用拷贝

  • 浅拷贝:会在堆上创建一个新的对象,如果原对象内部的属性是引用类型,浅拷贝会直接复制内部对象的引用地址,也就是说拷贝对象和元对象公用同一个内部对象。
  • 深拷贝:完全复制整个对象,包括这个对象所包含的内部对象。
  • 引用拷贝:两个不同的引用指向同一个对象。

你可能感兴趣的:(java,开发语言)