java语言是不支持多重继承的,Java语言不支持多重继承-Read.PPT

Java语言不支持多重继承-Read

接口 和 内部类 接口 对象克隆 内部类 一、Java语言的接口 1.什么是接口?为什么要设置接口? Java语言的接口是用来实现类间多重继承功能的 结构。它定义了若干个抽象方法和常量用以实现 多重继承的功能。 Java语言不支持多重继承,只支持单重继承 (只有一个直接父类)。然而在解决实际问题的程 序设计中仅靠单重继承尚不能更复杂的问题。为 了使Java程序的类层次结构更加合理,更符合实 际问题的需要。 在java中,接口不是类,而是一组对类的要求 Arrays类的sort方法用以对某一对象数组排序,所属类必须实现 Comparable接口 接口中的任何方法自动为public 接口中还可以定义常量,自动为public static final 决不能存在实例字段、也不会实现方法 暂时可以把接口想象成没有实例字段的抽象类 类实现接口的步骤: 1。声明类先要实现指定接口(implements) 2。对接口中的所有方法进行定义 class Employee implements Comparable public int compareTo(Object b) { Employee eb = (Employee)b; if (salary < eb.salary) return -1; if (salary > eb.salary) return 1; return 0; } 运行代码 p199 6-1 接口的属性 不能使用new实例化接口 x = new Comparable(…) // error 可以声明接口变量,但它必须指向一个实现了该接口的类的对象 Comparable x = new Employee(…) //ok 接口具有继承性(extends) 接口不能定义实例字段,但可以定义常量 每个类只能有一个超类,但类可以实现多个接口 class Employee implements Comparable, Cloneable 接口和抽象类 试想:将Comparable设计成抽象类 如果Employee类已经继承了某一个类,那么它就不能在继承Comparable类了 class Employee extends Person, Comparable//error 但要是接口,则可以解决问题 class Employee extends Person implements Comparable 接口变相的实现了多继承的大部分功能,同时也避免了它的复杂恶化低效率 接口和回调 回调:当某特定事件发生时应采取的动作 菜单 or 按钮 以javax.swing中的Timer类为例 设置时间间隔 当时间间隔到达时应采取的动作 如何实现? 定时器要求所传递对象所属的类实现java.awt.event包中的ActionListener接口,时间间隔到达时,会调用ActionPerformed方法 回顾 ⑴ 定义接口与定义类非常相似:由接口定义不 难看出,可以认为接口是一种特殊的类,它是由 常量和抽象方法组成的特殊类。一个类只能有一 个父类,但可以同时实现若干个接口。 ⑵ interface 是接口定义的关键字。与类定义 相似,需要说明接口的访问属性,而接口的访问 修饰符仅有public-公共接口 二、对象克隆 拷贝对象变量和拷贝对象是两个不同的概念 前者:原始值和拷贝指向同一个对象 Employee copy = original; 后者:“另起炉灶” Employee copy = (Employee)original.clone(); clone方法是Object类的一个protected方法,返回类型总是object类型,所以必须对接口进行类型转换; “浅拷贝” 拷贝的字段都是基本类型,无影响; 问:拷贝的字段本身就是引用类型,有什么影响? 答案是:仍然存在着原对象和克隆对象的部分信息共享 这种拷贝,称为“浅拷贝” p207 如何进行“深拷贝”,即同时克隆子对象 重新定义clone方法 实现克隆的步骤(无论“深”、“浅”) 1。实现Cloneable接口,并且 2。使用public重新定义clone方法, 3。调用super.clone()和捕获CloneNotSupportedException异常 Cloneable接口 它并没有指定clone方法,而是继承而来的; 是一个标记接口:没有方法。使用它的唯一目的是可以进行用instanceof进行类型查询 如果对象要求克隆,当没有实现这个接口,则会产生一个异常 浅拷贝的代码实现 p208 深拷贝的代码实现 p209 三、内部类(inner class) 内部类是定义在其他类内部的类。 内部类 分

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值