一篇文章带你了解java接口与继承

 更新时间:2021年08月01日 09:53:52   投稿:BJT  
这篇文章主要介绍了Java接口和继承操作,结合具体实例形式分析了Java接口和继承与使用的相关原理、操作技巧与注意事项,需要的朋友可以参考下

JAVA接口的概念

官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

我的理解:在类中,方法是具体的,通过接口我们可以将具体的方法抽象化。比如在动物类中有吃的动作,不同的动物吃不同的食物,食肉食草等,通过接口我们可以对不同的动物调用不同的接口方法。

接口的代码实现

定义关键字:interface

public interface 接口名{
//里面不可以有具体的方法体!!!
}

实现 关键字: implements

public class 类名 implements 接口名,接口名2{
//在这里重写接口中的抽象方法
}

举个列子

小明从南京去北京的方法

public class xiaoming {
  public void WaytoBeiJing(waytoBeiJing wtbj){
      wtbj.WaytoBeiJing();
  }
  public static void main(String[] args) {
        xiaoming Xiaoming = new xiaoming();
        xiaoming_tobeijing xm_tbj = new xiaoming_tobeijing();
        Xiaoming.WaytoBeiJing(xm_tbj);
    }
}
// 定义接口
public interface waytoBeiJing {
    public void WaytoBeiJing();//抽象方法 没有方法体
}

//写方法
public class xiaoming_tobeijing implements waytoBeiJing{
    //重写去北京的方法
    @Override
    public void WaytoBeiJing(){
        System.out.println("乘坐飞机");
    }
    //一个类中只能有一个方法 可以再次创建一个类 写第二种方法
}

结果:
乘坐飞机
Process finished with exit code 0

注意事项

1.接口不能被实例化。

2.接口中所有方法不能有主体。

3.一个类可以实现多个接口。

4.接口可以有变量,但一定是public static final 修饰,就算你不写,JVM也会默认是这个。

5.接口中的方法只能是public修饰。

6.一个接口不能继承其他类,但是可以继承别的接口。

Java继承

什么是继承:

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 为什么要用继承:可以去掉重复代码,方便后期维护

举个列子,大家应该都玩过英雄联盟,每个英雄都是一个类,如果说不用继承的话每次都要重复定义每个英雄的成员属性,如下图我举了一个MF,一个EZ的列子

public class MissFortune {
    // 成员
    // 属性
    String nameID;
    int hp;
    int ad;
    int ap;
    int lv;// 人物等级
    // 技能等级
    int q_lv;
}
public class Ezreal {
    // 成员
    // 属性
    String nameID;
    int hp;
    int ad;
    int ap;
    int lv;// 人物等级
    // 技能等级
    int q_lv;
}

这样就创建了两个单独独立的英雄类,可以发现前半部分代码都是重复的,下面我们用继承来看一下

首先创建一个父类:

public class Hero {
	 // 成员
    // 属性
    String nameID;
    int hp;
    int ad;
    int ap;
    int lv;// 人物等级
    // 技能等级
    int q_lv;
}

然后再看我们的单独英雄类:

public class MissFortune extends Hero{
    // 成员方法
    // 初始化
    public void initMissFortune(){
        hp=570;
        ad=52;
        ap=0;
        lv=1;
        q_lv=1;
    }
 }
public class Ezreal extends Hero {
    // 成员方法
    // 初始化
    public void initEzreal(){
        hp=530;
        ad=60;
        ap=0;
        lv=1;
        q_lv=1;
    }
 }

在此之中,父类的属性和方法 子类都可以继承到并 直接调用,简洁了代码,后期维护的过程中也不容易出错

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • Java变量常量声明和定义原理解析

    Java变量常量声明和定义原理解析

    这篇文章主要介绍了Java变量常量声明和定义原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 如何在spring boot中进行参数校验示例详解

    如何在spring boot中进行参数校验示例详解

    这篇文章主要介绍了如何在spring-boot中进行参数校验及lombok的使用详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • ThreadLocal使用案例_动力节点Java学院整理

    ThreadLocal使用案例_动力节点Java学院整理

    这篇文章主要介绍了ThreadLocal使用案例分析,需要的朋友可以参考下
    2017-08-08
  • mybatis-plus的自动填充时间的问题(添加到数据库的时间比当前时间多4个小时)

    mybatis-plus的自动填充时间的问题(添加到数据库的时间比当前时间多4个小时)

    这篇文章主要介绍了mybatis-plus的自动填充时间的问题(添加到数据库的时间比当前时间多4个小时),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • spring boot教程之产生的背景及其优势

    spring boot教程之产生的背景及其优势

    这篇文章主要介绍了spring boot教程之产生的背景及其优势的相关资料,需要的朋友可以参考下
    2022-08-08
  • 解决对接JAVA SM2加密遇到的坑

    解决对接JAVA SM2加密遇到的坑

    这篇文章主要介绍了解决对接JAVA SM2加密遇到的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 浅谈一下RabbitMQ、Kafka和RocketMQ消息中间件对比

    浅谈一下RabbitMQ、Kafka和RocketMQ消息中间件对比

    这篇文章主要介绍了浅谈一下RabbitMQ、Kafka和RocketMQ消息中间件对比,消息中间件属于分布式系统中一个字系统,关注于数据的发送和接收,利用高效可靠的异步信息传递机制对分布式系统中的其余各个子系统进行集成,需要的朋友可以参考下
    2023-05-05
  • Spring Security 过滤器注册脉络梳理

    Spring Security 过滤器注册脉络梳理

    这篇文章主要介绍了Spring Security过滤器注册脉络梳理,Spring Security在Servlet的过滤链中注册了一个过滤器FilterChainProxy,它会把请求代理到Spring Security自己维护的多个过滤链,每个过滤链会匹配一些URL,如果匹配则执行对应的过滤器
    2022-08-08
  • Shiro集成Spring之注解示例详解

    Shiro集成Spring之注解示例详解

    Shiro想必大家都知道了,是目前使用率要比spring security都要多的一个权限框架,下面这篇文章主要给大家介绍了关于Shiro集成Spring之注解的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-09-09
  • JDK动态代理之ProxyGenerator生成代理类的字节码文件解析

    JDK动态代理之ProxyGenerator生成代理类的字节码文件解析

    这篇文章主要为大家详细介绍了JDK动态代理之ProxyGenerator生成代理类的字节码文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02

最新评论