[JavaSE基础笔记]Day09 接口 多态

目录

接口

多态

窗体组件

监听

其他


接口

        抽象方法就是体现一种规则。如果一个抽象类中的方法全部是抽象方法,那么这个类就是java中的一个接口类,需要将abstract class变为interface定义接口。

        接口功能:扩展事物的功能

        接口和子类之间不是继承关系,而是实现关系,子类称为实现类,使用关键字implements替换externs

        定义实现类时的命名规范:前半部分为接口名后半部分为impl

        实现类可以多实现接口,中间用,隔开(因为接口的抽象方法没有具体逻辑),并且可以与继承同时使用,如果继承的父类中的方法与接口中的抽象方法重复,则不需要再重写这个抽象方法

        接口中的成员变量前面默认加final,public和static,为自定义常量,实现类中无法对其修改,命名时应按照final的名字格式进行,但可以在实现类中使用

        接口中没有构造方法,实现类中访问的是Object的构造方法,因此接口在定义成员变量时必须赋值。

        通过接口名调用接口中的常量

        接口中不能存在普通方法,定义的方法前默认加上public abstract

        接口与接口之间可以存在继承关系,继承父类接口的抽象方法,并且子类接口可以多继承

        JDK8,9之后接口有一些新特性

多态

        同一对象在不同时刻的不同形态

        前提条件:1.有继承/实现的关系2.有方法的重写(不必要,父类没有抽象方法可以不重写)3.有父类引用指向子类对象(Employee e=new Coder())(多层继承也可以)

        父类引用指向子类对象时,调用成员变量时使用的为父类的成员变量(编译和运行均看左边父类),因为父类的引用指向super,看不到子类的成员变量

        父类引用指向子类对象时,调用成员方法时使用的为子类的成员方法(编译看左边父类和运行均看右边子类),因为父类的成员方法可能是抽象方法

        多态创建对象时,构造方法无影响

        好处:可以通过父类引用指向子类对象时简化代码,提高代码的扩展性(形参为父类,实参就可以为其任意子类)。弊端:不能调用父类中没有,子类中特有的成员方法(解决办法:1.创建子类对象2.向下转型)

        转型:正常定义父类引用指向子类对象就是向上转型。如果要调用子类特有的方法,有两种方式(1.创建子类对象 2.向下转型)子类引用指向之前定义的父类对象(需要用到强制转换Zi z=(Zi)fu)

        如果采用向下转型来使用子类的特有成员方法,因为在方法中传参,多态不一定只传一种子类,会遇到类型转换异常(强转时,实际类型和目标类型不一致),通常需要用到判断,这里的判断关键字是instanceof(a instanceof cat表示a是不是猫,对象 instanceof 类)

窗体组件

        JFrame()类 getContentPane()方法获取面板,无参数,返回值为Container对象类型(在getContentPane方法中创建的Container对象)

        JButton()类 空参构造:没有内容的按钮。带参构造,参数为按钮上的信息

        Contanier()类add()方法,参数为组件,将组件添加入面板(通常采用链式编程),位置覆盖时,显示先添加的,后添加的数据为从底部塞进去的

        JFrame()类setLayout(null)取消面板默认布局(默认布局为组件布满面板)

        JButton()类setBounds()方法,参数为x,y,width,height

        Jlabel()类用于展示文本和图片,空参构造什么都不带,带参构造:字符串为文本区域,图片对象为图片区域

        ImageIcon类用于加载图片,带参构造函数参数为图片路径(应该使用两个\)

监听

        事件监听机制:监听的对象称为监听源(如按钮,图片等),对事件源进行的操作称为事件(如按下键盘,事件一般为接口,无法直接使用,需要创建实现类),完成事件后触发的反馈称为绑定监听。Java中监听都是接口的形式

        (ActionListener 动作监听:包括鼠标左键点击和空格按键的监听)

        (KeyListener 键盘监听:keyType方法监听键位不全,一般不使用)

        (MouseListener 鼠标监听:)

        JButton()类addActionListener()方法,参数为ActionListener接口类型,应该传入接口的实现类对象

        监听源可以通过有参构造从测试类传入实现类

        KeyEvent()类中getKeyCode()方法,无参数,返回按下键盘的ASCII码(int类型)

        焦点:有组件时会产生焦点,导致无法对窗体进行监听

其他

        ctrl+shift+u将选中的英文大写

        空白区域diagrams-》show diagram显示类的继承实现结构图

        main 的参数早期用于键盘录入,现在没有实际意义

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值