首页 > 其他分享 >day08

day08

时间:2024-10-18 20:00:16浏览次数:2  
标签:day08 继承 abstract 接口 抽象 抽象类 方法

多态的好处:

    1、提高了程序的维护性(由继承保证)
    2、提高了程序的扩展性(由多态保证)

向下转型

public static void main(String[] args) {
        Fu1 f1 = new Zi1();
        f1.fun1();
//        f1.show1();
        //向下转型
        //格式: 子类类名 变量名 = (子类类名)要转型的变量名;
        Zi1 z1 = (Zi1)f1;
        z1.show1();
        //并不是任意两个类型之间都可以做向下转型,只有实际内存对象类型与要转的类型一样

接口

接口:表示一个类的额外功能的实现
    java提供了一个关键字表示接口:interface
    接口我们可以将它看作成一个特殊的类, 因为接口也会被编译成一个class文件

    接口注意事项:
        1. 接口中只能存在抽象方法, jvm默认会在方法前使用public abstract进行修饰, 刚学java推荐加上
        2. 类和接口是实现关系 可以通过关键字implements实现接口
        3. 当一个具体的类实现一个接口的时候, 必须要实现接口中所有的抽象方法
        4. 若一个抽象类实现一个接口的时候,可以选择性地实现接口中的抽象方法
        5. 一个类可以同时实现多个接口,使用逗号隔开
        6. 接口和接口存在继承关系, 并且一个接口可以同时继承多个接口
        7. 接口中只能定义常量, 默认修饰符为public static final
        8. 接口无法实例化, 接口中不能出现构造方法

   面试题:
        java中允许多继承吗?
        答:
            若是类和类之间的继承,只能单继承,不能多继承
            若是接口与接口之间的继承,可以多继承

abstract关键字

java为了表示现实生活中抽象的概念集合,提供了一个关键字给我们使用:abstract
    abstract 抽象的
    可以修饰类,修饰成员方法

    1. 被abstract修饰的类是抽象类, 抽象类不能被实例化
    2. 被abstract修饰的方法是抽象方法, 抽象方法不能有大括号实现
    3. 在抽象类,既可以存在具体实现的方法, 也可以存在抽象方法
    4. 若一个类中有抽象方法, 这个类一定是一个抽象类
    5. 当一个具体的类继承一个抽象类, 必须要实现抽象类中的所有抽象方法
    6. 当一个抽象类继承一个抽象类的时候, 可以选择性地是否重写抽象方法

抽象类与类中成员的关系:

    成员变量: 抽象类既可以存在变量, 也可以存在常量
    构造方法: 可以存在构造方法, 是为了将来在继承关系做初始化的作用
    成员方法: 既可以是具体的实现方法, 也可以是抽象方法

思考

1. 一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义? 可以表示一种概念的集合
2. abstract不能和哪些关键字共存
        final 不能共存
        static 不能共存
        private 不能共存

标签:day08,继承,abstract,接口,抽象,抽象类,方法
From: https://www.cnblogs.com/flxf/p/18474951

相关文章

  • 机器学习篇-day08-聚类Kmeans算法
    一.聚类算法简介概念无监督学习算法根据样本之间的相似性,将样本划分到不同的类别中;不同的相似度计算方法,会得到不同的聚类结果,常用的相似度计算方法有欧式距离法。聚类算法的目的是在没有先验知识的情况下,自动发现数据集中的内在结构和模式。使用不同的聚类准则,产生的......
  • Golang笔记_day08
    Go面试题(一)1、空切片和nil切片区别空切片:   空切片是指长度和容量都为0的切片。它不包含任何元素,但仍然具有切片的容量属性。在Go语言中,可以使用内置的make函数创建一个空切片,例如:emptySlice:=make([]int)   这个语句创建了一个长度为0、容量为0的空切片......
  • Day08-常量、变量、作用域
    变量、常量、作用域变量变量是可以变化的量。Java是强类型语言,每个变量都须声明类型。Java变量是程序中最基本的存储单元,要素包括变量名、变量类型和作用域。其声明格式为typevarName[=value][{,varName[=value]}];//可在同一行内为多个变量赋值,但不建议这样做//数......
  • Day08——强制转换
    类型转换由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。类型的优先级低----------------------------------------------------------->高byte,short,char->int->long->float->double运算中,不同类型的数据先转化为同一类型,然后进行运算。//内存溢出......
  • 初学Java基础Day08 方法,方法的递归,方法的重载
    一,方法1.概念:        特定功能的代码块2.好处:        减少代码的冗余3.分类:1.无参数无返回值的方法2.带参数的方法3.带返回的方法4.理解:        参数是方法调用时传入的数据,返回值是方法执行完毕后返回的数据1.无参数无返回的方法//语法结......
  • 数据处理与统计分析篇-day08-apply()自定义函数与分组操作
    一.自定义函数概述当Pandas自带的API不能满足需求,例如:我们需要遍历的对Series中的每一条数据/DataFrame中的一列或一行数据做相同的自定义处理,就可以使用Apply自定义函数apply函数可以接收一个自定义函数,可以将Series对象的逐个值或DataFrame的行/列数据传递给自......
  • 【day08-异常、File、字符集】
    异常什么是异常异常就是代表程序中出现的问题异常的分类编译时异常继承关系:继承自Exception,并非RuntimeException特点:编译时报错,在运行时报错运行时异常继承关系:继承自RuntimeException特点:编译时不报错,在运行时报错异常的作用作用一:异常是寻找程序bug的关键参......
  • Day08.Java数组
    Java数组数组的定义数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排序组合而成其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们数组的声明和创建首先必须声明数组变量,才能在声明中使用数组dataType[]array......
  • day08(网络编程基础)Linux IO 模型(IO多路复用)
    目录场景假设select特点编程步骤练习练习一:输入鼠标的时候,响应鼠标事件,输入键盘的时候,响应键盘事件(两路IO)练习二:用select创建并发服务器,可以同时连接多个客户端(0,sockfd)(12min)练习三:用select创建并发服务器,可以与多个客户端进行通信(监听键盘、socket、多个accept......
  • Linux和C语言(Day08)
    一、周练习1.题目一:(25分)1.题目描述:输入终值,输出所有能被7整除的数值及其和              2.评分要求根据接收值准确定义变量类型(2分)提示并输入终值(2分)阅读题目确定循环要素:起始值、终值、步长(3分)循环判断指定范围内能被7整除的数值并输出(5分)核......