java新手练习-类的继承调用(接口,抽象类,构造函数)和枚举定义方法

news2024/11/13 9:27:25

1.继承

父类可以调用子类实例对象,(对于调用抽象类必须使用继承)

模版

//抽象定义一个父类抽象类
abstract class FatherAbstract{
    void showFatherAbstract(String color, String name, int age, double serail_abstract){
        System.out.println("color = " + color + ", name = " + name + ", age = " + age + ", enum_example = " + serail_abstract);
    }


}

2.java的类是一个单继承的类,但不意味着不能继承自己父类的父类,继承是可以继承父类的父类的

这边我使用了父类为构造函数

public class FatherClass extends FatherAbstract{
    private final String color;//定义一个不变的变量
    private  String name;
    private  int age;
    public FatherClass(String color,String name, int age) {
//父类的构造类(必须和父类的名字相同)
        this.color = color ;
        this.age =age;
        this.name =name;
    }
    public FatherClass(String color) {
//这边我考虑了特殊情况,final定义的不变的变量,必须定义默认值
        this.color = color ;

    }

    public String getColor() {
        return color;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
//前面是get,set方法获取构造函数的变量
    public void  show(){
//输出打印
        System.out.println("名字: "+this.name +"颜色: "+this.color+ "年龄: "+ age);

    }

}

3.对于接口来说,是定义方法的模版,一个类可以继承多个接口,(可以把它相当与工具)

interface  FatherInterface{
    void showInterface(String color, String name, int age ,double serial );
}

4.枚举要定义一个方法需要定义一个抽象类,并重新其方法

enum  Fatherenum {
    DAY01{
        @Override
        void showEnum(String color, String name, int age, double enum_example) {
            System.out.println("color = " + color + ", name = " + name + ", age = " + age + ", enum_example = " + enum_example);

        }

    };
   abstract void showEnum(String color, String name, int age, double enum_example);



}

5.对比抽象类和接口,其主要区别是 抽象类要写方法体,接口不需要,其次接口是被引用,而抽象类是需要被继承

6.最后复习一下调用

package extendDemo1;

public class ChildrenClass extends FatherClass implements FatherInterface {
//这边因为父类是个构造函数需要传参,子类也需要重构一下
    public ChildrenClass(String color, String name, int age) {
        super(color, name, age);
    }

    public ChildrenClass(String color) {
        super(color);
    }

    public static void main(String[] args) {
//父类调用子类实例类
        FatherClass fatherClass = new ChildrenClass("黄色", "懂帝", 78);
        fatherClass.show();
//引用接口调用被引用接口子类实例类
        FatherInterface fatherInterface = new ChildrenClass("紫色");
        fatherInterface.showInterface("紫色","罗兰",32,02);
//枚举调用其枚举方法(其是隐性的,不能被继承)
        Fatherenum.DAY01.showEnum("土色","黄忠",65,03);
//父类的父类抽象类调用子类实例类(继承也能继承父类的父类)
        FatherAbstract childrenClass = new ChildrenClass("红色");
        childrenClass.showFatherAbstract("红色","吕布",32,87);


    }
//继承了接口必须要重新接口的方法
    @Override
    public void showInterface(String color, String name, int age, double serial) {
        System.out.println("color = " + color + ", name = " + name + ", age = " + age + ", serial = " + serial);

    }
}

运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1528073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙App开发学习 - TypeScript编程语言全面开发教程(上)

背景 根据鸿蒙官方的说明: ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。因此,在学习ArkTS语言之前&#…

我的尝试:Codigger + Vim

若您愿意耐心投入,学习 Vim 的过程其实远比想象中轻松。我对 Vim 产生兴趣,主要是源于它对提升生产力的巨大潜力。我尝试了 Neovim、NvChad 以及 Codigger Vim 插件,如今我的工作效率已远超从前。 那么,Vim 究竟是什么呢&#xff…

交叉注意力融合时空特征的TCN-Transformer并行预测模型

独家 | 高创新预测模型 往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 风速预测(一)数据集介绍和预处理-CSDN博客 风速预测(二)基于Pytorch的EMD-LSTM模型-CSDN博…

OSPF虚链路vlink

OSPF虚链路——vlink(使得其他区域和骨干区域相连) 虚链路:一定是跨越非骨干区域连接的 1、虚链路属于区域0的逻辑链路 2、虚链路只能穿越1个非骨干区域 3、虚链路不能穿越特殊区域; vlink在配置的时候,需要指对方…

helm部署hadoop

(作者:陈玓玏) 参考helm仓库的文档:https://artifacthub.io/packages/helm/apache-hadoop-helm/hadoop helm helm repo add pfisterer-hadoop https://pfisterer.github.io/apache-hadoop-helm/ helm install hadoop pfistere…

IDEA中的Project工程、Module模块的概念及创建导入

1、IDEA中的层级关系: project(工程) - module(模块) - package(包) - class(类)/接口具体的: 一个project中可以创建多个module一个module中可以创建多个package一个package中可以创建多个class/接口2、Project和Module的概念: 在 IntelliJ …

基于Spring Boot的宿舍管理系统

摘 要 随着信息时代的来临,过去的传统管理方式缺点逐渐暴露,对过去的传统管理方式的缺点进行分析,采取计算机方式构建宿舍管理系统。本文通过课题背景、课题目的及意义相关技术,提出了一种楼宇信息、宿舍信息、宿舍安排、缺勤信息…

Android视角看鸿蒙第六课(module.json5中的各字段含义之pages)designWidth的用法

Android视角看鸿蒙第六课(module.json5中的各字段含义之pages) 导读 前面几篇文章,我们陆续分析了entry->src->main下的module.json5中的各个字段的含义及作用。目前剩余pages和abilities两个字段,本篇文章一起来了解pages。 过程有错…

如何查看MySQL数据库的连接数

连接数是指用户已经创建多少个连接,也就是MySQL中通过执行 SHOW PROCESSLIST命令输出数据库中运行着的线程个数的详情,如图6-1-1所示。 SHOW PROCESSLIST默认情况下只显示前100条记录的详情,如果需要显示超过100条的所有记录,可以…

login登录界面

展示情况 代码&#xff1a; <template><div class"wrapper"><div style"margin: 200px auto; background-color: #fff; width: 350px; height: 300px; padding: 20px; border-radius: 10px"> <div style"margin: 20px 0; text…

VMware学习安装(虚拟化软件)

一、上官网下载安装包&#xff0c;双击打开&#xff08;稍微等待解压过程&#xff09;出现以下界面。 二、点击下一步出现以下界面&#xff0c;进行许可协议的勾选并进行下一步。 三、建议不要安装在C盘&#xff0c;选择一个较大的空间&#xff0c;以下两个选项都勾选上&#…

C语言自定义库

编写 xx.c 和xx.h文件\将源代码编译为目标文件 gcc -c add.c sub.c 执行完毕后会生产add.o和sub.o文件静态库创建使用ar命令&#xff1b; ar -r libmymath.a add.o sub.o将库和main.c文件一起编译 gcc -o main main.c -lmymath -L./ 注意 上述书写格式不要错乱 -L 是指定文件路…

CentOS7使用Docker部署.net Webapi

1 准备WebApi项目 对于已存在的WebApi项目&#xff0c;需要添加Docker支持&#xff1b; 编码时&#xff0c;先设置好项目需要的端口号&#xff1a;program.cs中&#xff0c;app.Run("http://*:8000");设置端口为&#xff1a;8000在VS中&#xff0c;选中项目&#xf…

[精选]通义灵码做活动,送挺多礼品,快来薅羊毛!!!

你的编辑器装上智能ai编辑了吗&#xff0c;的确挺好用的。 最近阿里云AI编码搞活动&#xff0c;可以免费体验并且还可以抽盲盒。有日历、马克杯、代金券、等等其他数码产品。 大多数都是日历。 点击链接参与「通义灵码 体验 AI 编码&#xff0c;开 AI 盲盒」 https://develope…

基于Django兴趣趣班预约管理系统

技术&#xff1a;pythonmysqlvue 一、系统背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。这样的大…

代码随想录算法训练营第二十八天 | 93.复原IP地址,78.子集, 90.子集II

这道题和选取回文子串的题目类似&#xff0c;就是一个子集划分的问题&#xff0c;但是子集划分是有终止条件的&#xff0c;也就是这个划分并不是把所有的划分可能都塞进结果集了。当划分到达最后一个位置的时候&#xff0c;划分结束&#xff0c;不包含最后一个划分位置的子集划…

为企业插上“翅膀”,看长沙如何助推民营企业上市!

在讨论城市经济发展水平时&#xff0c;上市公司数量经常被作为关键指标&#xff0c;是一座城市的“财富”。它不仅代表城市繁荣程度&#xff0c;也有利于人口安居乐业。所以&#xff0c;虽然各地政府的发展目标中&#xff0c;少不了培育上市公司这一条。 但是&#xff0c;从市…

Gitlab-runner注册与配置

文章目录 概要操作流程获取HTTPS证书上传证书修改gitlab-runner dns配置文件gitlab-runner 注册 概要 本文主要介绍了Gitlab-runner在内网环境注册到gitlab的操作方式。内网环境如下&#xff1a; 1、gitlab-runner由docker镜像部署&#xff1b; 2、gitlab部署与内网&#xff0…

WordPress自动生成原创文章插件

WordPress作为最受欢迎的内容管理系统之一&#xff0c;为博客和网站的搭建提供了便捷的解决方案。而在内容创作方面&#xff0c;自动生成原创文章的插件为WordPress用户提供了更为高效的选项。 什么是WordPress自动生成原创文章插件&#xff1f; WordPress自动生成原创文章插件…

分类预测 | Matlab实现BiTCN双向时间卷积神经网络数据分类预测/故障识别

分类预测 | Matlab实现BiTCN双向时间卷积神经网络数据分类预测/故障识别 目录 分类预测 | Matlab实现BiTCN双向时间卷积神经网络数据分类预测/故障识别分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现BiTCN双向时间卷积神经网络数据分类预测/故障识别。 2.自…