前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java基础(五)

java基础(五)

作者头像
Vincent-yuan
发布2020-06-10 15:06:37
3270
发布2020-06-10 15:06:37
举报
文章被收录于专栏:Vincent-yuan

一. 多态

1.什么是多态

多态: 同一个引用类型,使用不同的实例而执行不同的操作。父类引用,子类对象。

2.如何实现多态

使用多态实现思路

  • 编写父类
  • 编写子类,子类重写父类方法
  • 运行时,使用父类的类型,子类的对象
代码语言:javascript
复制
Pet pet = new Dog();

使用多态的两种形式

  • 使用父类作为方法形参使用多态
  • 使用父类作为方法返回值使用多态

注意:父类引用不能调用子类特有的方法。

3. instanceof 运算符

语法

代码语言:javascript
复制
对象  instanceof  类或接口

instanceof通常和强制类型转换结合使用

小结 类型转换

  • 向上转型——子类转换为父类,自动进行类型转换
  • 向下转型——父类转换为子类,结合instanceof运算符进行强制类型转换

使用多态的好处? 多态可以减少类中代码量,可以提高代码的可扩展性和可维护性 引用变量的两种类型:

  • 编译时类型(模糊一点,一般是一个父类) 由声明时的类型决定。
  • 运行时类型(运行时,具体是哪个子类就是哪个子类) 由实际对应的对象类型决定。

多态的存在要有3个必要条件: 要有继承,要有方法重写,父类引用指向子类对象

二. 接口

关键字:interface

接口特性:

  • 接口不可以被实例化
  • 实现类必须实现接口的所有方法
  • 实现类可以实现多个接口
  • 接口中的变量都是静态常量

示例实现

1.编写接口

代码语言:javascript
复制
public interface UsbInterface {
    /**
     * USB接口提供服务。
     */
    void service();
}

2.实现接口:多个接口使用 “,”分隔

代码语言:javascript
复制
public class UDisk implements UsbInterface {
    public void service() {
        System.out.println("连接USB口,开始传输数据。");
    }
}

3.使用接口:用接口实现多态

代码语言:javascript
复制
UsbInterface uDisk = new UDisk();
uDisk.service();

接口:has - a 的关系

接口是一种约定:体现在接口名称和注释上 - 有些接口只有名称;方法的实现方式要通过注释来约定

面向接口编程:程序设计时,面向接口的约定而不考虑具体实现。

补充:

接口中没有构造函数;

接口中的方法都是抽象方法,没有方法体;

接口中的方法不能是private的;

接口中字段的修饰符:public static final(默认不写)

  • public: 使接口的实现类可以使用这个常量
  • static:接口不涉及和任何具体实例相关的细节,因此接口没有构造方法,不能被实例化,没有实例变量,只有静态(static)变量
  • final:接口中不可以定义变量即定义的变量前都要加上final修饰,使之成为常量(没有final修饰的是变量,加上final修饰就会变成常量)。所以接口的属性默认是public static final 常量,且必须赋初值。

接口中方法的修饰符:public abstract(默认不写)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档