第六章 面向对象(高级篇)

Posted 陌尘枫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六章 面向对象(高级篇)相关的知识,希望对你有一定的参考价值。

6.1、继承的基本概念

  a、Java中只允许多层继承,不允许多重继承。使用extends可以实现继承的关系。

  b、使用继承时应该注意:子类是不能直接访问父类的私有成员的,子类可以调用父类中的非私有方法,但是不能直接调用父类中的私有成员。

6.2、继承的进一步研究

  a、子类可以直接使用super()调用父类(超类)中的无参构造。

  b、在继承关系中也存在着方法 覆写的概念,所谓方法的覆写就是指子类定义了与父类中同名的方法,但是在方法覆写时必须考虑到权限,即被子类覆写的方法不能拥有比父类方法更加严格的访问权限。

  c、如果将父类中的一个方法定义为private访问权限,在子类中将此方法声明为default访问权限,这样不是覆写,只是相当于重新定义了一个新方法。

序号 区别点 重载 覆写
1 单词 Overloading Overriding
2 定义 方法名称相同,参数的类型或个数不同 方法的名称、参数的类型、返回值类型全部相同
3 对权限没有要求 被覆写的方法不能用于更严格的权限
4 范围 发生在一个类中 发生在继承类中

  d、与this调用构造方法的要求一样,super语句必须放在子类构造方法的首行。

序号 区别点 this super
1 属性访问 访问本类中的属性,如果本类中没有此属性,则从父类中继续查找 访问父类中的属性
2 方法 访问本类中的方法,如果本类中没有此方法,则从父类中继续查找 直接访问父类中的方法
3 调用构造 调用本类构造,必须放在构造方法首行 调用父类构造,必须放在子类构造方法的首行
4 特殊 表示当前对象 无此概念

  e、this和super都可以调用构造方法,两者不可以同时出现,因为两者调用构造时都必须放在构造方法的首行,另外,无论子类如何操作,最终必须要首先调用父类的构造方法。

6.4、final关键字

  a、使用final声明的类不能有子类

  b、使用final声明的方法不能被子类覆写

  c、使用final声明的变量即成为常量,常量不可以修改。

  d、在使用final声明变量时,要求全部的字母大写,如INFO,这点在开发中是十分重要的。

  e、如果一个程序中的变量使用public static final声明,则此变量将称为全局变量。

6.5、抽象类的基本概念

  a、抽象类的定义和使用规则

   (1)包含一个抽象方法的类必须是抽象类

   (2)抽象类和抽象方法都要使用abstract关键字声明

   (3)抽象方法只需声明而不需要实现

     (4)抽象类必须被子继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法。

  b、一个抽象类中是允许存在构造方法的,因为抽象类依然使用的是类的继承关系,而且抽象类中也存在各个属性,所以子类在实例化之前必须先要对父类进行实例化。

6.6、接口的基本概念

  

 

以上是关于第六章 面向对象(高级篇)的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript高级程序设计-第六章面向对象的程序设计

读书笔记 - js高级程序设计 - 第六章 面向对象的程序设计

第六章 Python类(面向对象编程)

第六章

JAVA-初步认识-第六章-面向对象

第六章-面向对象编程