java八股文面试[java基础]——面向对象特点

news2025/1/21 0:48:35

三大特点: 封装 继承 多态

 

面试题:java如何实现多继承(除了使用接口之外)

实现多继承有三个方法

  • 多层继承
  • 内部类
  • 接口

参考 java实现多继承的三种方式

多层继承
​如果要直接继承类,子类是不可以直接多继承的,但是可以通过多层继承来实现多继承,但多层继承一般不建议超过三次。

A 有一个成员变量 num

class A {
    private int num = 10;

    A() {
    }

    public int getNum() {
        return this.num;
    }

    public void fun() {
        System.out.println(this.getNum());
    }
}

B有一个成员变量  name

class B extends A {
    private String name = "张三";

    B() {
    }

    public String getName() {
        return this.name;
    }

    public void fun() {
        System.out.println(this.getNum());
    }
}

C 从B继承(继承了name和num):覆盖name

class C extends B {
    private String name = "刘能";

    C() {
    }

    public String getName() {
        return this.name;
    }

    public void fun() {
        System.out.println(this.getName());
        System.out.println(this.name);
    }
}

测试类:

public class Test {
    public Test() {
    }

    public static void main(String[] args) {
        A a = new A();
        a.fun();
        print(new B());
        print(new C());
    }

    public static void print(A a) {
        a.fun();
    }
}

输出:

10
10
刘能
刘能

内部类: 和组合类型,相当于C包含A 和 B的两个实例对象

class C1 {
    //C类
    private String name = "刘能";

    class OneA extends A {//C中内部类继承A类

        public void printA() {
            System.out.println(this.getNum());
            fun();
        }
    }

    class OneB extends B {//C类内部类继承B类

        public void printB() {
            System.out.println(this.getName());
            fun();
        }
    }

    public void print() {
        //在C类中生成普通方法print()
        new OneA().printA();
        // 匿名实例化OneA类对象并调用printA方法
        new OneB().printB();
    }
}

接口:默认支持多个implements 


//接口实现多继承
interface IA {
    //父接口A(接口为更纯粹的抽象类,结构组成只含全局常量和抽象方法)
    void funA();
}

interface IB {
    //父接口B(接口前添加I用以区分接口)
    void funB();
}

interface CImpl extends IA, IB {
    //接口可继承多个父接口,用,分隔开即可,子接口的命名可选择较为重要的父接口进行命名或自行命名,一般子接口后添加Impl用以区分
    void funC();
}

class Impl implements CImpl {
    //定义类实现接口(也可直接实现父接口(多个))
    public void funC() {
        //抽象方法的实现
        System.out.println("你昨天真好看!");
    }

    public void funA() {
        System.out.println("你今天真好看!");
    }

    public void funB() {
        System.out.println("你明天真好看!");
    }
}

public class Test{
    public static void main(String[] args) {
        Impl im = new Impl();
        // 实例化对象
        im.funA();
        im.funB();
        im.funC();
    }
}

知识来源:

【基础】面向对象_哔哩哔哩_bilibili

【2023年面试】Java面向对象有哪些特征_哔哩哔哩_bilibili

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

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

相关文章

微信小程序的汽车租赁系统的l9k0e

随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&#xf…

开源文库系统moredoc

什么是 moredoc ? moredoc 中文名 魔豆文库,是基于 golang 开发的类似百度文库、新浪爱问文库的开源文库系统,支持 TXT、PDF、EPUB、MOBI、Office 等格式文档的在线预览与管理,为 dochub 文库(github, gitee )的重构版…

民族传统文化分享系统uniapp 微信小程序

管理员、用户可通过Android系统手机打开系统,注册登录后可进行管理员后端;首页、个人中心、用户管理、知识分类管理、知识资源管理、用户分享管理、意见反馈、系统管理,用户前端;首页、知识资源、用户分享、我的等。 本系统的使用…

初探修模的三维模型OBJ格式轻量化压缩的遇到常见问题与处理方法

初探修模的三维模型OBJ格式轻量化压缩的遇到常见问题与处理方法 在对经过修模的三维模型进行OBJ格式轻量化压缩处理的过程中,可能会遇到一些常见问题。以下是一些常见问题以及相应的处理方法: 1、顶点丢失和形状变形:在减小顶点数量的过程中…

自己实现 SpringMVC 底层机制 系列之-实现任务阶段 8- 完成返回 JSON 格式数据-@ResponseBody

😀前言 自己实现 SpringMVC 底层机制 系列之-实现任务阶段 8- 完成返回 JSON 格式数据-ResponseBody 🏠个人主页:尘觉主页 🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家&#xff0…

大数据风控介绍

众所周知,金融是数据化程度最高的行业之一,也是人工智能和大数据技术重要的应用领域。随着大数据收集、存储、分析和模型技术日益成熟,大数据技术逐渐应用到金融风控的各个环节。个推作为专业的数据智能服务商,拥有海量数据资源&a…

Android项目如何上传Gitee仓库

前言 最近Android项目比较多,我都是把Android项目上传到Gitee中去,GitHub的话我用的少,可能我还是更喜欢Gitee吧,毕竟Gitee仓库用起来更加方便 一. 创建Gitee仓库 1. 先创建一个Gitee账号,然后登录上去 2. 创建Androi…

基于JSP+Servlet+mysql养老院管理系统

基于JSPServletmysql养老院管理系统 一、系统介绍二、功能展示四、其他系统实现五、获取源码 一、系统介绍 项目类型:Java web项目 项目名称:基于JSPServlet的养老院管理系统 [yanglaoyuan] 当前版本:V1.0.0版本 难度等级:✩✩点…

恒运资本分析:科技股有哪些股票?

跟着科技的不断进步,科技职业越来越遭到人们的重视。在股市中,出资科技股票已经成为人们赚取高额收益的一种方法。那么科技股有哪些值得出资的股票呢?本文将从多个角度剖析科技股。 一、美股科技股票 在美股商场中,科技股票一向以…

QIIME 2教程. 29补充资源SupplementaryResources(2023.5)

补充资源 Supplementary resources https://docs.qiime2.org/2023.5/supplementary-resources/ 教学内容 Educational content 以下资源对于了解有关微生物组分析和生物信息学的更多信息很有用: 应用生物信息学导论 An Introduction to Applied Bioinformatics http…

三维模型OBJ格式轻量化压缩处理的数据质量提升方法分析

三维模型OBJ格式轻量化压缩处理的数据质量提升方法分析 在三维模型的OBJ格式轻量化压缩处理过程中,除了减小文件大小和提高加载速度之外,我们也需要考虑如何提升数据质量。以下是几种常见的方法: 1、优化顶点数据:顶点数据是三维…

三层架构与MVC模式区别

三层架构 三层即 视图层、业务逻辑层、持久层(数据访问层) MVC模式 MVC 即 Model(模型),View(视图),Controller(控制控制器)。 --------------------------…

fastapi集成elastic-apm,实现性能监控

fastapi集成elastic-apm,实现性能监控 本文适用于 Starlette/FastAPIStarlette/FastAPI SupportInstallationSetupFastAPIUsagePerformance metricsIgnoring specific routes Supported Starlette and Python versions 具体使用示例官网的配置项介绍各语言框架集成e…

33、在SpringBoot项目添加Web组件(Servlet、Filter 和 Listener) 的三种方法

通过Spring Bean 来添加 Servlet、Filter 和 Listener ★ 添加Web组件(Servlet、Filter、Listener)的三种方式: - 使用Spring Bean添加Servlet、Filter或Listener。- 使用XxxRegistrationBean手动添加Servlet、Filter或Listener。- 使用Clas…

Spring Cloud Alibaba-Sentinel--服务容错

1 高并发带来的问题 在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络 原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出…

kafka--技术文档--架构体系

架构体系 Kafka的架构体系包括以下几个部分: Producer. 消息生产者,就是向Kafka broker发送消息的客户端。Broker. 一台Kafka服务器就是一个Broker。一个集群由多个Broker组成。一个Broker可以容纳多个Topic。Topic. 可以理解为一个队列,一…

从零开始的Hadoop学习(二)| Hadoop介绍、优势、组成、HDFS架构

1. Hadoop 是什么 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。主要解决,海量数据的存储和海量数据的分析计算问题。广义上来说,Hadoop通常是指一个更广泛的概念—Hadoop生态圈。 2. Hadoop 的优势 高可靠性:Hadoop底层维护多…

js reverse实现数据的倒序

2023.8.25今天我学习了如何在数组顺序进行倒序排列,如: 原数组为: 我们只需要对数组使用reverse()方法 let demo [{id: 1, name: 一号},{id: 2, name: 二号},{id: 3, name: 三号},]demo.reverse()console.log(demo) 扩展: 当我…

SV-9032 机架式网络采播器

SV-9032 机架式网络采播器 一、描述 18123651365微信 SV-9032是我司的一款机架式网络采播器,具有10/100M以太网接口,后面板上有两路线路输入接口,可以直接连接音源输出设备,将采集音源编码后发送至网络播放终端上。同时还具有三…

Python Scrapy网络爬虫框架从入门到实战

Python Scrapy是一个强大的网络爬虫框架,它提供了丰富的功能和灵活的扩展性,使得爬取网页数据变得简单高效。本文将介绍Scrapy框架的基本概念、用法和实际案例,帮助你快速上手和应用Scrapy进行数据抓取。 Scrapy是一个基于Python的开源网络爬…