JAVA面向对象进阶编程
5.2抽象类
有时,由于对象高级抽象的需要,希望类只需要说明方法首部,而不需要或不可能说明其方法体,其方法体只能由其子类来完成,这样的类需要使用abstract关键字修饰,这种类被称为抽象类。
5.3继承
继承概述:
在Java编程语言中,通过继承可利用已有的类,并扩展它的属性和方法。这个已有的类可以是语言本身提供的、其他程序员编写的或程序员原来编写的。
如果在声明类A时,指明类A继承了类B (类B是一个已定义了的类),则类A通常就拥有了类B的成员变量和方法。此时,类B称为类A的父类( superclass) ,父 类也称为超类或基类:类A称为类B的子类(subelass),子类也称为派生类。Objet类 是Java中所有类的父类,也就是说Java中的类直接或间接有Object类派生而来。
Java中实行单继承,即一个类只能有一个父类。
继承语法格式, 类继承语法形式如下:
[修饰符] class SubClassName extends SupperClassName
extends是继承关键词。SubClassName是新的子类名,
SupperClassName是继承的父类名。父类名是必需的,而且只能有一个,因为Java中实行单继承。父类名所指定的类必须是在当前编译单元中可以访问的类,否则会产生编译错误。
子类的特性:
①子类拥有其父类的所有属性和方法。但父类中说明为private的属性和方法,子类不可直接访问。
②子类可以对父类的方法覆盖或重载。
子类对父类成员重载,子类可以对父类的方法覆盖或重载。
方法覆盖:子类的方法首部与父类的方法首部相同,但是子类重新实现了该方法。
方法重载: Java中方法可重载,就是方法名相同但形参列表不同之方法。子类的方法对父类的方 法也可重载。
如果子类声明了一个与父类的成员变最同名的成员变量,则称父类的该成员变量被隐藏(Hiding) ,如果子类声明了一个与父类的成员方法同名的成员方法,则称父类的该成员方法被重写
(Overriding)。关键字this和super分别用来指明子类和父类中同名的成员变量和方法。当父类的成员变量、子类的成员变量和类的对象方法使用的局部变量.者同名,或其中两个同名时,可以使用关键字this和super来指定所要使用的变量。
继承是面向对象编程的主要优点之-,它对如何设计Java类有着
直接的影响。继承有如下儿点好处:
null、 this、 super
Java语言规范中,每个类均有这样3个对象:
(null、this、super)
( nulI ——“空”变量,表示这个对象不存在相应的实例)
例如: Rectangle rect=nul I ;
当一一个对象不再有用时,应当清除它以释放所占用的内存空间,这只要赋予它nu11即可。即如: rect=null ;
this 一一 代表对象本身
在类的方法中,如果要引用的变量名或方法名的成员变量名或成员方法名相同,则可通过使用this来代表对象本身,即引用对象自身。
super一代表父类
当子类中有与父类同名的变量或方法时,可加上super限定词来指明是对父类的变量或方法的引用。
下面是this和super是使用的例子。
final类(最终类)
final修饰符可以定义一个 不能被继承的类,即不能再有子类。java.lang. System类就是final类的一个例子,它是最终的类。final 修饰符通常是出于安全的目的而使用的,因为不能继承final类,人们就不能重载或覆盖它的任何方法。如果允许个类被继承,其被重载或覆盖的方法可能会被改写。保证某个特定的方法在类层次关系上的某层以后只有一个定义,这对于那些安全性非常关键的类是非常必要的。
无论是用于修饰变量、方法还是类,final关键字的目的都是一样的:增强代码的安全性。例4.8 final类说明
final class EndClass extends SupperClass{ .... }
5.4包
包是为」解决设计较大规模的程序而引入的概念。一个大的系统,往往包含多种对象,需要多个类束描述。这些类以逻辑方式组合在一起,形成了所谓的包。
使用 包可提供控制访问的范围。类、方法缺省访问权限时,就只可在它所属的包中被访问,说明为public的才 可在其他包中被访问。
一个Java程序可 以由多个包组成。一个包可由一个或多个源程序文件(.java文件)构成,有多个源程序文件时要分别建立。注意:每个源程序文件中最多只能有一个说明为public的类。
■5.4.1 包说明
■ 5.4.2包的层次结构
■5.4.3 包的使用
程序员成为架构师需要掌握的资料,关注我:简信回复“架构”获取往期Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术。资料获取方式:关注+转发后,私信关键词 【架构】即可获取!
网友评论