一篇文章带你了解java接口与继承
作者:BJT 发布时间:2022-07-15 02:44:08
标签: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;
}
}
在此之中,父类的属性和方法 子类都可以继承到并 直接调用,简洁了代码,后期维护的过程中也不容易出错
来源:https://blog.csdn.net/wxbbbbb/article/details/119046551


猜你喜欢
- 一、总体概述官方文档:https://docs.devexpress.com/WindowsForms/8117/controls-and-
- springboot+spring data jpa实现新增及批量新增spring data jpa (以下简称jpa)。这个orm其实和m
- spring配置不扫描service层原因我将contoller给springmvc进行扫描,然后其余所有交给spring扫描然后发现ser
- 先来看看网易云APP的效果:前言关于网易云音乐推荐歌单界面的实现一、实现1.自定义一个圆角图片控件(也可直接使用第三方框架)由于是一些简单的
- 1. 单个属性yaml 内的属性如下:server: port: 80只需在成员变量上注解 @Value(“
- 在前面的一篇文章中,简单的介绍了一下如何实现软键盘不自动弹出,使用的方法是设置android:wind
- 可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了。
- 1.简述:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = &q
- FTP简介文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模
- 工厂方法模式的定义工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂
- Java异常层次结构Exception异常RuntimeException与非RuntimeException异常的区别:非RuntimeE
- 问题场景今天小编在MyBatis 整合Spring 的时候,使用到了@MapperScan,在启动期出现了一个错误:Invalid defa
- 本文实例为大家分享了java实现飞机游戏的具体代码,供大家参考,具体内容如下MyGameFrame类:主要的调用类package sc.wh
- 一,在一个公共类里创建一个公共方法,然后需要验证的页面都调用这个方法 //在此例子中,就是在入口函数里调用CheckLogin()
- 本文实例为大家分享了java实现猜拳小游戏的具体代码,供大家参考,具体内容如下User.javaimport java.util.Scann
- 开始研究android开发,搭建开发环境的时候就出了问题……果然是好事多磨~ 安装了jdk,配置环境变量,安装了完整版的adt、创建了hel
- mybatis-plus框架功能很强大,把很多功能都集成了,比如自动生成代码结构,mybatis crud封装,分页,动态数据源等等,附上官
- 一. 接口文档概述swagger是当下比较流行的实时接口文文档生成工具。接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端
- 线程池线程池全称为托管线程池,线程池受 .NET 通用语言运行时(CLR)管理,线程的生命周期由 CLR 处理,因此我们可以专注于实现任务,
- 前言最近在学习Kotlin这门语言,在项目开发中,运用到了单例模式。因为其表达方式与Java是不同的。所以对不同单例模式的实现进行了分别探讨