1. 1:final关键字(掌握)
    (1)是最终的意思,可以修饰类,方法,变量。
    (2)特点:
    A:它修饰的类,不能被继承。
    B:它修饰的方法,不能被重写。
    C:它修饰的变量,是一个常量。
    (3)面试相关:
    A:局部变量
    a:基本类型 值不能发生改变
    b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的
    B:初始化时机
    a:只能初始化一次。
    b:常见的给值
    定义的时候。(推荐)
    构造方法中。
  2.  
  3. 2:多态(掌握)
    (1)同一个对象在不同时刻体现出来的不同状态。
    (2)多态的前提:
    A:有继承或者实现关系。
    B:有方法重写。
    C:有父类或者父接口引用指向子类对象。
  4.  
  5. 多态的分类:
    a:具体类多态
    class Fu {}
    class Zi extends Fu {}
  6.  
  7. Fu f = new Zi();
    b:抽象类多态
    abstract class Fu {}
    class Zi extends Fu {}
  8.  
  9. Fu f = new Zi();
    c:接口多态
    interface Fu {}
    class Zi implements Fu {}
  10.  
  11. Fu f = new Zi();
    (3)多态中的成员访问特点
    A:成员变量
    编译看左边,运行看左边
    B:构造方法
    子类的构造都会默认访问父类构造
    C:成员方法
    编译看左边,运行看右边
    D:静态方法
    编译看左边,运行看左边
  12.  
  13. 为什么?
    因为成员方法有重写。
    (4)多态的好处:
    A:提高代码的维护性(继承体现)
    B:提高代码的扩展性(多态体现)
    (5)多态的弊端:
    父不能使用子的特有功能。
  14.  
  15. 现象:
    子可以当作父使用,父不能当作子使用。
    (6)多态中的转型
    A:向上转型
    从子到父
    B:向下转型
    从父到子
    (7)孔子装爹的案例帮助大家理解多态
    (8)多态的练习
    A:猫狗案例
    B:老师和学生案例
  1. 3:抽象类(掌握)
    (1)把多个共性的东西提取到一个类中,这是继承的做法。
    但是呢,这多个共性的东西,在有些时候,方法的声明一样,但方法体不一样。
    也就是说,方法声明一样,但是每个具体的对象在具体实现的时候内容不一样。
    所以,我们在定义这些共性的方法的时候,就不能给出具体的方法体。
    而一个没有具体的方法体的方法是抽象的方法。
    在一个类中如果有抽象方法,该类必须定义为抽象类。
    (2)抽象类的特点
    A:抽象类和抽象方法必须用关键字abstract修饰
    B:抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类
    C:抽象类不能实例化
    D:抽象类的子类
    a:是一个抽象类。
    b:是一个具体类。这个类必须重写抽象类中的所有抽象方法。
    (3)抽象类的成员特点:
    A:成员变量
    有变量,有常量
    B:构造方法
    有构造方法
    C:成员方法
    有抽象,有非抽象
    (4)抽象类的练习
    A:猫狗案例练习
    B:老师案例练习
    C:学生案例练习
    D:员工案例练习
    (5)抽象类的几个小问题
    A:抽象类有构造方法,不能实例化,那么构造方法有什么用?
    用于子类访问父类数据的初始化
    B:一个类如果没有抽象方法,却定义为了抽象类,有什么用?
    为了不让创建对象
    C:abstract不能和哪些关键字共存
    a:final 冲突
    b:private 冲突
    c:static 无意义
  1. 4:接口(掌握)
    (1)回顾猫狗案例,它们仅仅提供一些基本功能。
    比如:猫钻火圈,狗跳高等功能,不是动物本身就具备的,
    是在后面的培养中训练出来的,这种额外的功能,java提供了接口表示。
    (2)接口的特点:
    A:接口用关键字interface修饰
    interface 接口名 {}
    B:类实现接口用implements修饰
    class 类名 implements 接口名 {}
    C:接口不能实例化
    D:接口的实现类
    a:可以是一个抽象类。
    b:可以是一个具体类,这个类必须重写接口中的所有抽象方法。
    (3)接口的成员特点:
    A:成员变量
    只能是常量
    默认修饰符:public static final
    B:构造方法
    没有构造方法
    C:成员方法
    只能是抽象的
    默认修饰符:public abstract
    (4)类与类,类与接口,接口与接口
    A:类与类
    继承关系,只能单继承,可以多层继承
    B:类与接口
    实现关系,可以单实现,也可以多实现。
    还可以在继承一个类的同时,实现多个接口
    C:接口与接口(重点)
    继承关系,可以单继承,也可以多继承
    (5)抽象类和接口的区别(自己补齐)?
    A:成员区别
    抽象类:可以是变量,也可以是常量;有抽象方法也有非常像方法。
    接口:常量;只能是抽象方法。
    B:关系区别:
    类与类:继承关系,可以单实现,可以多层实现
    类与接口:实现关系,可以单实现,也可以多实现。可以在继承一个类的同时继承多个接口。
    接口与接口:继承关系,可以单继承,也可以多继承。
    C:设计理念不同
    抽象类:is a,抽象类中定义的是共性功能。
    接口:like a,接口中定义的是扩展功能。
    (6)练习:
    A:猫狗案例,加入跳高功能
    B:老师和学生案例,加入抽烟功能0

Java中多态、抽象类和接口的更多相关文章

  1. Java 中,抽象类与接口之间有什么不同?

    Java 中,抽象类和接口有很多不同之处,但是最重要的一个是 Java 中限制一个 类只能继承一个类,但是可以实现多个接口.抽象类可以很好的定义一个家族类 的默认行为,而接口能更好的定义类型,有助于后 ...

  2. 论Java中的抽象类与接口

    目录 抽象类和抽象方法 定义 与普通类的区别以及注意点: 抽象类的作用 接口 定义 示例 注意 作用 最后:接口与抽象类的异同 使用场景 借鉴 抽象类和抽象方法 定义 抽象方法和抽象类都必须被abst ...

  3. java中的抽象类和接口

    抽象类和接口本身让面向对象真正实现,一个好的系统可以让抽象类或者接口实现多次复用,如果出现了集成具体类那么肯定是有问题的. 抽象类和接口很相似,很多时候好像功能可以混用,java设计者赋予了很多不一样 ...

  4. Java 中的抽象类及接口

    抽象类使用 abstract 关键字修饰,该类即为抽象类. 抽象类的作用: 1.某些情况下,父类约束子类必须包含哪些方法,但不知道子类如何去实现这些方法. 2.可以从多个具有相同特征的类中抽象出一个抽 ...

  5. JAVA中的抽象类与接口

    抽象类 abstract class 包含抽象方法的类,叫抽象类.而抽象的概念就是抽象出共同属性:成员变量和方法.所以抽象类可以有private等多种权限的成员变量和非abstract的成员方法.当然 ...

  6. 辨异 —— Java 中的抽象类和接口

    接口优于抽象类.-- <Effective Java>(Item 18) 0. 语法区别 抽象类允许给出某些方法的实现,接口不允许: 为了实现由抽象类定义的类型(type),类必须成为抽象 ...

  7. 深入Java核心 Java中多态的实现机制(1)

    在疯狂java中,多态是这样解释的: 多态:相同类型的变量,调用同一个方法时,呈现出多中不同的行为特征, 这就是多态. 加上下面的解释:(多态四小类:强制的,重载的,参数的和包含的) 同时, 还用人这 ...

  8. 个人对Java中多态的一些简单理解

    什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一 ...

  9. Java中多态的一些简单理解

    什么是多态 .面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. .多态的定义:指允许不同类的对象对同一消息做出响应.即 ...

  10. java基础(四)-----抽象类与接口

    抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 一.抽象类 我们 ...

随机推荐

  1. gulp watch error ENOSPC

    in linux you fix this with the command:echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sy ...

  2. C#操作Dataset数据集与SQLite数据库

    近日有需要写点C#程序,有用到Dataset数据集和SQLite数据库,由于我从来就不擅长记各种编程语言的语法,所以在查阅一堆资料后,留下以下内容备忘:     一.SQLite操作,直接贴代码,很简 ...

  3. Less 使用指南

    简而言之 Less是为了简化css http://less.bootcss.com/features/ 以上链接是Less中文网站,里面有对Less的详细介绍. 一下写在使用中遇到的问题: 1.下载L ...

  4. HierarchyViewer for iOS 2.0 BETA Introduction

    We know HierarchyViewer is an useful tool in Android SDK. The developer and tester, who haven't the ...

  5. 【转载】C++ 与“类”有关的注意事项总结(十二):按成员初始化 与 按成员赋值

    原文:C++ 与"类"有关的注意事项总结(十二):按成员初始化 与 按成员赋值 一.按成员初始化(与构造函数和拷贝构造函数有关) 用一个类对象初始化另一个类对象,比如: Accou ...

  6. (淘宝无限适配)手机端rem布局详解(转载非原创)

    从网易与淘宝的font-size思考前端设计稿与工作流 本文结合自己对网易与淘宝移动端首页html元素上的font-size这个属性的思考与学习,讨论html5设计稿尺寸以及前端与设计之间协作流程的问 ...

  7. CentOS6.5 安装 tomcat

    1.首先下载tomcat.tar.gz包 http://tomcat.apache.org/download-70.cgi 2.移动到目标文件夹 mv tomcat.tar.gz /usr/tomca ...

  8. javascript 分页组件

    自己写的一个简单的分页组件,主要功能还有实现都在JS中,html页面中只用增加一个放置生成分页的DIV,并给定容器的id. html结构如下: <ul class="paginatio ...

  9. Point ZM 转换为Point 类型

    打开ArcToolbox,使用ConvertionTools-> To Shapefile->FeatureClass to Shapefile 工具,注意在环境设置里,里将output ...

  10. 如何浏览并管理 Outlook 邮件?

    当你的邮件多起来的时候你就不得不考虑这个问题了,如何处理各种邮件? 如何浏览并管理 Outlook 邮件? 待续~