Java程序设计及面向对象第三章

本章由小许为你讲解面向对象具有的三大特性,即封装,继承和多态。这三大特性是实现程序代码复用的重要手段。

1.包

包是类的逻辑组织形式。在程序中可以声明类所在的包。同一个包中的类名不能重复。包是有层次结构的,即一个包中可以包含若干个字句。

Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。

包的作用:

  • 1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

  • 2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。

  • 3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

(1)自定义包

声明包的语法如下:

package <包名>

注意:声明一个包的语句必须写在类中的第一行。

创建Hero类,将该类存放到com.java.oriented.dato.figure包中,具体操作如下:

package com.java.oriented.dato.figure;//使用package关键字声明包
public class Hero{
   //类中的相关操作
}

(2)包的导入

如果要使用Java中存在的包,可以在程序中使用import语句导入包。在程序中导入包的格式如下:

import <包名>.<类名>

如果要导入一个包中的多个类,可以使用“*”表示包中饭所有的类。例如:

import java.util.*;  //导入Java.util包中所有的类

import java.until.ArrayList;   //导入Java.util包中的ArrayList类

 2.继承

(1)概述

继承是面向对象的程序设计的一个重要特性,它是通过继承原有类派生出的子类而进而改造出更为复杂的子类。

Java的继承使用extends关键字实现,实现继承的类称为子类,被继承的类称为父类,也被称为基类,超类。

Java继承语法如下:

[修饰符]  class 子类名 [extends 父类名]{

   //类定义部分

}

注意:Java中的继承为单继承,即一个子类只能有一个直接的父类。 

3.重载和重写 

(1)重载

  • 方法名相同,参数不同。并在同一个类中。
  • 由于方法的参数个数或类型不同,所有可用区分重载的方法。 

构造方法也可实现方法的重载。

(2)重写

重写在子类与父类中,方法名和参数相同。

规则:

  • 参数列表与被重写方法的参数列表必须完全相同。

  • 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类(java5 及更早版本返回类型要一样,java7 及更高版本可以不同)。

  • 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为 public,那么在子类中重写该方法就不能声明为 protected。

  • 父类的成员方法只能被它的子类重写。

  • 声明为 final 的方法不能被重写。

  • 声明为 static 的方法不能被重写,但是能够被再次声明。

  • 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。

  • 子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法。

  • 重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。

  • 构造方法不能被重写。

  • 如果不能继承一个类,则不能重写该类的方法。

4.多态

同一操作作用于不同的对象,可以有不同的解释,以致产生不同的执行的结果。 

(1)instanceof运算符 

instanceof主要用来判断一个类是否实现了某个接口,或者判断一个实例对象是否属于一个类。

其使用格式如下:     

引用类型变量 instanceof (类、抽象类或接口)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值