JAVA多继承(multiple inheritance)的实现

Java设计者选择不支持多继承,其主要原因是多继承会让语言本身变得非常复杂,效率也会降低。为了实现多继承大多好处,java中的内部类和接口加在一起,可以实现多继承

内部类

内部类技术主要用于设计具有相互协作关系的类集合。特别是在编写处理GUI事件的代码时,使用它可以让代码看起来更加专业。
可以使某些编码根简洁。隐藏你不想让别人知道的操作。

内部类的优缺点:
  ◇ 优点:节省编译后产生的字节码文件的大小
  ◇ 缺点:使程序结构不清楚

内部类分为:嵌套静态类,成员类,本地类,匿名内部类

嵌套静态类:若被声明为static,就变成了顶层类,不能再使用局部变量。若想在Inner Class中声明任何static成员,则该Inner Class必须声明为static。

成员类和本地类之间最重要的差别是,本地类只能访问 final 的变量或者参数。

匿名类允许我们把类的定义和实例的分配组合在一起。我们可以直接用 new SomeClass() 实例化对象,并且在实例化的位置把整个类的实现都放在花括号中。

本地内部类与匿名内部类的区别在于本地内部类有构造函数,而匿名内部类只能实例初始化。

匿名内部类:通常用在Java的事件处理上

package inner;
import java.applet.*;
import java.awt.event.*;
public class AnonymousInnerClassDemo extends Applet{
   public void init()   {
     addMouseListener(new MouseAdapter(){
       public void mousePressed(MouseEvent me){
       showStatus("Mouse Pressed!");// 这个匿名内部类可以访问外部类的方法showStatus. }
     });
   }
   public void showStatus(String str){
System.out.println(str); }
}

在上面的例子中, 方法addMouseListener接受一个对象型的参数表达式, 于是, 在参数里, 我们定义了一个匿名内部类,这个类是一个MouseAdapter类型的类, 同时在这个类中定义了一个继承的方法mousePressed, 整个类做为一个参数.这个类没有名称, 但是当执行这个表达式时它被自动实例化.


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值