接口、抽象类和事件监听机制

本文介绍了接口、抽象类和事件监听机制。接口是一种定义行为的标准,不能实例化,且强制子类实现所有抽象方法。抽象类则介于接口和类之间,允许定义部分内容。事件监听涉及事件源对象、监听方法和事件接口,用于处理图形界面组件上的动作响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.接口

接口的定义

定义接口的关键字:interface

格式:

public interface 接口  extends 接口,...(可以继承多个接口)  {

//定义常量

public static final 数据类型  常量名  = 值;

//定义抽象方法

public abstract 返回值数据类型  方法名(数据类型  参数名,...);

}

注意:

1.接口不能实例化对象(因为其没有构造函数);

2.接口中只有一种访问修饰符就是public;

3.接口默认提供public、static、final、abstract关键字。

 

final关键字的作用:

1、被final修饰的类不可以被继承

2、被final修饰的方法不可以被重写

3、被final修饰的变量不可以被改变

重点就是第三句。被final修饰的变量不可以被改变,什么不可以被改变呢,是变量的引用?还是变量里面的内容?还是两者都不可以被改变?

举个例子:

public class FinalString
{
    private String str;
    
    public FinalString(String str)
    {
        this.str = str;
    }

    public String getStr()
    {
        return str;
    }

    public void setStr(String str)
    {
        this.str = str;
    }
}

 

public class Test
{
    public static void main(String[] args)
    {
        final FinalString fs = new FinalString("1");
        fs.setStr("2");
        System.out.println(fs.getStr());
    }
}

运行没有问题。

让我们稍微修改一下:

public static void main(String[] args)
{
    final FinalString fs = new FinalString("1");
    final FinalString fss = new FinalString("333");
    fs = fss;
}

第7行报错了,“The final local variable fs cannot be assigned”。可见,被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容是可以改变的

 

接口的实现(继承)

类实现(继承)接口的关键字:implements

格式:

public class 类名  extends 类名|抽象类名  implements 接口,... {

}

注意:类实现(继承)接口后,类必须要实现(方法重写)接口中所有的(接口的,接口的父接口)抽象方法。

 

1.1为什么我们需要接口?

1.类的继承是单继承,有了接口就可以让类拥有多个父类(父接口)。

2.强制要求子类必须要重写抽象方法,不重写就会报错(在团队开发过程中)。

 

2.抽象类

定义抽象类的关键字:abstract class

格式:

public abstract class 抽象类名  extends 类名|抽象类   implements 接口,... {

能定义类中所有的内容

也能定义接口中所有的内容

}

抽象类和接口一样不能实例化对象。

接口、抽象类和类有什么关系呢?

抽象类是介于接口和类之间的一种特殊类。

接口也是一种特殊类。

 

3.事件监听机制

需要三个组件(时间源对象,事件监听方法、事件接口)

事件源对象

只有组件才可以成为事件源对象。

3.1如果在一个图形界面上面有很多的组件,如何确定谁是事件源对象呢?

你的动作决定事件源对象(动作的承受对象)。

你在哪一个组件上发生动作,然后还需要有相应的操作,那这个组件就是事件源对象。

 

事件监听方法

捕获事件源对象上的动作,收集事件源对象的信息和动作信息,然后将这些信息交给事件接口(事件处理者)进行处理。

事件监听方法是由事件源对象提供的,事件监听方法名基本格式:add**Listener(**Listener l)。

 

事件接口(事件处理者)

事件接口的对象拿到信息后,会根据动作信息,去调用对应的事件处理方法,执行方法中的代码。

事件接口是由事件监听方法决定,它是**Listener。

事件监听机制举例见博客画板的实现。。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值