final关键字、多态、抽象类、接口的小复习

简介: ---------------------------------------1:final关键字可以干什么?有什么特点?   最终的意思。可以修饰类,方法,变量。     它修饰类,类不能被继承。     它修饰方法,方法不能被重写。

---------------------------------------
1:final关键字可以干什么?有什么特点?
  最终的意思。可以修饰类,方法,变量。
    它修饰类,类不能被继承。
    它修饰方法,方法不能被重写。
    它修饰变量,变量是常量。且没有默认初始化,只能初始化一次。
---------------------------------------
2:final关键字的面试题?
  A:修饰局部变量
    基本类型:值不能改变。
    引用类型:地址值不能改变,内容可以改变。

  B:变量常见的初始化时机
    定义的时候。
    在构造代码块中给值。
    构造方法中。
---------------------------------------
3:多态是什么,前提是什么?
  同一个对象在不同时刻表现出来的不同的状态。

  A:有继承或者实现关系。
  B:有方法的重写。
  C:有父类或者父接口引用指向子类对象。
---------------------------------------
4:多态中对成员的访问的特点?
  成员变量:
    编译看左边,运行看左边。
  成员方法:
    编译看左边,运行看右边。
  静态方法:
    编译看左边,运行看左边。
---------------------------------------
5:多态的好处及弊端?如何解决多态的弊端?
  好处:
    维护性和扩展性。

  弊端:

    父类不能使用子类特有功能。

  如何解决呢?
    A:创建子类对象。(在内存中会多了一个对象)
    B:向下转型。
---------------------------------------
6:什么是向上转型?什么是向下转型?
  子 -> 父
  父 -> 子
---------------------------------------
7:多态练习
  自己做
---------------------------------------
8:抽象类概述及其特点?
  抽象类:继承的时候,提取了多个方法,而有些方法不是每个子类都是一模一样的实现,
      这个时候,就应该把这样的方法不提供具体实现,而不提供具体实现的方法是一个抽象方法。
      在一个类中,如果有抽象方法,该类必须定义为抽象类。

  特点:
    A:抽象类或者抽象方法由abstract修饰。
    B:抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类。
    C:抽象类不能被实例化。
    D:抽象类的子类:
      a:是抽象类。
      b:是具体类,要重写所有抽象方法。
---------------------------------------
9:抽象类成员特点?
  A:成员变量
    有变量,有常量。
  B:构造方法
    有。用于子类访问父类数据的初始化。
  C:成员方法
    有抽象方法,有非抽象方法。
---------------------------------------
10:抽象类练习?
---------------------------------------
11:抽象类的小问题
  A:一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
    答:抽象类可以没有抽象方法,但是如果你的一个类已经声明成了抽象类,
      即使这个类中没有抽象方法,它也不能再实例化,即不能直接构造一个该类的对象。
      如果一个类中有了一个抽象方法,那么这个类必须声明为抽象类,否则编译通不过。
    意义:就是不让其他类创建本类对象,而是交给子类完成,防止乱用。
  B:abstract不能和哪些关键字共存:
    final 冲突
    private 冲突
    static 无意义
---------------------------------------
12:接口的概述及其特点?
  接口:某个继承体系需要扩展功能的时候,就应该实现接口。

  特点:
    A:接口用interface修饰。
    B:类实现接口用implements修饰。
    C:接口不能实例化。
    D:接口的实现类:
      a:是抽象类。
      b:是具体类,重写接口中的所有抽象方法。
---------------------------------------
13:接口的成员特点?
  A:成员变量 静态常量
  B:成员方法 抽象的方法
---------------------------------------
14:抽象类和接口的区别?
  A:成员区别
  B:关系区别
  C:设计理念区别
    "is a"
    "like a"
---------------------------------------
15:接口的练习?
---------------------------------------
16:案例
  猫狗案例,加入跳高的额外功能。
  老师和学生案例,加入抽烟的额外功能。
  教练和运动员案例(学生分析然后讲解)
---------------------------------------

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
存储 容器
QT中QListWidget实现QListWidgetItem图片和文字居中
在使用QT开发软件的过程中,很多时候使用QListWidget来实现列表项的功能,比如MS系统的功能模块菜单,如下面2张图所示,其中第一张图是带文字和图标的列表项,第二张图是纯图标的模式,在最近开发的平台客户端的某个功能模块都用上了。
1557 0
|
机器学习/深度学习 人工智能 网络架构
Transformer原理解析——一种Open AI和DeepMind都在用的神经网络架构
Transformer模型是一种日益流行的神经网络结构。它最近被OpenAI用于他们的语言模型中。与此同时,近期也被DeepMind用于它们的程序“星际争霸”中击败了一名顶级职业星际玩家。 Transformer模型的开发是为了解决序列转换及神经机器翻译问题。
9028 0
|
11月前
|
敏捷开发 监控 数据可视化
2024年十大工程管理软件评测:哪些任务可视化工具能显著提高团队效率?
在数字时代,团队协作和项目管理的效率至关重要。任务可视化工具通过直观展示任务进展、资源分配和优先级,帮助团队高效协作,减少误解和沟通成本。这类工具如Trello、Asana、ClickUp等,不仅提升了任务透明度和团队协作效率,还支持实时监控与反馈,特别适合远程工作和跨部门协作。
2024年十大工程管理软件评测:哪些任务可视化工具能显著提高团队效率?
|
开发工具 git
Idea(二) 解决IDEA卡顿问题及相关基本配置(转)
一、IDEA太卡顿,设置使用IDEA的内存 在IDEA的安装目录下的bin目录下: 打开设置: 将idea.exe.vmoptions文件内由-server-Xms128m-Xmx512m-XX:MaxPermSize=250m-XX:ReservedCodeCacheSize=150m-ea-Dsun.
2088 0
|
数据可视化
跟着NC学pseudotime| monocle2 拟时序分析 + 树形图
跟着NC学pseudotime| monocle2 拟时序分析 + 树形图
1476 0
|
存储 域名解析 缓存
计网 - 内容分发网络 : CDN 回源的工作机制初探
计网 - 内容分发网络 : CDN 回源的工作机制初探
734 0
|
SQL 消息中间件 存储
网易游戏基于 Flink 的流式 ETL 建设
网易游戏流式 ETL 建设实践及调优经验分享~
网易游戏基于 Flink 的流式 ETL 建设
|
前端开发
前端案例:基于el-table和el-pagination实现数据的分页效果
前端案例:基于el-table和el-pagination实现数据的分页效果
1047 0
前端案例:基于el-table和el-pagination实现数据的分页效果
|
安全 开发者
新能力|分账明白,账本清楚,商家超轻松
目前,商家分账 功能已经全面开放给企业商户,快来了解一下吧。
2836 12
新能力|分账明白,账本清楚,商家超轻松