1.final关键字

(1)最终的意思, 可以修饰类,方法,变量

(2)特点:

A:它修饰的类,不能被继承

B:它修饰的方法,不能被重写(覆盖)

C:它修饰的变量,这个变量其实是一个常量

【扩展】

①字面量常量:“hello”,10 , true

②自定义常量:final int x = 10;

(3)final面试相关:

A:final修饰局部变量的问题

①基本类型:基本类型的值不能发生改变

②引用类型:引用类型的地址值不能改变,但是,该对象的堆内存的值是可以改变的

B:初始化时间:

①只能赋值一次

②常见的赋值

2.多态

(1)同一个对象在不同的时刻 体现出来得到不同状态

(2)多态的前提:

A:有继承 或者 实现关系

B:有方法重写

C:有父类 或者 父接口引用指向子类对象

(3)多态的分类

A:具体类多态

B:抽象类多态

C:接口多态

(4)多态中的成员访问特点

A:成员变量

【编译看左边,运行看左边】

B:构造方法

【子类的构造都会默认访问父类构造】

创建子类对象的时候,会先访问父类的构造方法,对父类的数据进行初始化

C:成员方法

【编译看左边,运行看右边】

D:静态方法

【编译看左边,运行看左边】

E:为什么?

【因为成员方法有重写,静态方法与类相关】

(5)多态的好处

A:提高代码的维护性(继承体现)

B:提高代码的扩展性(多态体现)

(6)多态的弊端:

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

表现:子可以当作父使用,父不能当作子使用

(7)多态中的转型

A:向上转型(从子到父)

【Person p = new Student()】

B:向下转型(从父到子)

【Student s = (Student)p】

3.抽象类

(1)举个例子来理解抽象类

猫和狗都是动物,根据继承我们提取一个父类Animal,猫和狗都会叫,也就是它们的共性,

就可以在Animal类中定义,一个叫的方法。但是问题来了,

猫是喵喵叫,狗是汪汪叫,在父类的方法体,该如何写。

我们可以在Animal中只定义了一个叫的方法,但没有方法体,让子类来实现具体的方法。

这里这个没有方法体的方法就叫做抽象方法,这个类就叫做抽象类

(2)抽象类的特点

A:抽象类和抽象方法必须用关键字 abstract修饰

B:抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类

C:抽象类不能实例化,要靠子类来实现

D:抽象类的子类

①是一个抽象类

②是一个具体类,这个类必须重写抽象类的所有抽象方法

(3)抽象类的成员特点:

A:成员变量

【有变量,有常量】

B:构造方法

【有构造方法】

C:成员方法

【有抽象,有非抽象】

D:举例

(4)抽象类的几个小问题

A:抽象类与构造方法,不能实例化,那么构造方法有什么用?

用于子类访问父类数据的初始化

B:一个类如果没有抽象方法,却定义为抽象类,有什么用

为了不让创建对象

C:abstract不能和哪些关键字共存

①final 冲突 

②private 冲突

③static 无意义

4.接口

(1)通过例子来理解接口

飞机和小鸟都会飞,但他们属于不同的东西,所以不能用抽象类,

但他们又都有 飞 这个功能,这个时候就可以考虑用接口了

(2)接口的特点:

A:接口用关键字interface修饰

B:类实现接口用implements修饰

C:接口不能实例化

D:接口的实现类

①是一个抽象类

②是一个具体类

(3)接口得到成员特点

A:成员变量

【只能是常量,默认修饰符:public static final】

B:构造方法

【没有构造方法】

问:如果没有父类,那实现接口的子类,怎么初始化父类的成员

答:

C:成员方法

【只能是抽象的,默认修饰符public abstract】

(4)类与类,类与接口,接口与接口

A:类与类:继承关系 ,只能单继承,可以多层继承

B:类与接口:实现关系,可以当实现,也可以多实现。并且还可以在继承一个类的同事实现多个接口

C:接口与接口:继承关系,可以单继承,也可以多继承

(5)什么时候用抽象类,什么时候用接口

A:抽象类 被继承体现的是:xx is  a XX 的关系。抽象类中定义的是该继承体系的共性功能。

B:接口 被是实现体现的时候:xx like a XX 的关系。接口中定义的是该继承体系的扩展功能。

Java系列学习(九)-多态的更多相关文章

  1. 13、java中的多态

    1,多态的体现 父类的引用指向了自己的子类对象. 父类的引用也可以接收自己的子类对象.2,多态的前提 必须是类与类之间有关系.要么继承,要么实现. 通常还有一个前提:存在覆盖. 3,多态的好处 多态的 ...

  2. java中实现多态的机制是什么?

    多态性是面向对象程序设计代码重用的一个重要机制,我们曾不只一次的提到Java多态性.在Java运行时多态性:继承和接口的实现一文中,我们曾详细介绍了Java实现运行时多态性的动态方法调度:今天我们再次 ...

  3. java面向对象之 多态 Polymorphism

    多态(Polymorphism):用我们通俗易懂的话来说就是子类就是父类(猫是动物,学生也是人),因此多态的意思就是:父类型的引用可以指向子类的对象. 1.多态的含义:一种类型,呈现出多种状态 主要讨 ...

  4. java异常处理、多态

    第一:GC是什么? 为什么要有GC?  第二:垃圾回收的优点和原理.并考虑2种回收机制.  第三:垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?  第 ...

  5. Java开发知识之Java的继承多态跟接口*

    Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来 ...

  6. java三大特性--多态(1)

    定义 对象具有多种形态 类型 引用的多态: 父类的引用指向自身对象 父类的引用指向子类对象 TrafficTool traffictool=new TrafficTool();//父类的引用指向本身类 ...

  7. Java基础十一--多态

    Java基础十一--多态 一.多态定义 简单说:就是一个对象对应着不同类型. 多态在代码中的体现: 父类或者接口的引用指向其子类的对象. /* 对象的多态性. class 动物 {} class 猫 ...

  8. Java基础九--抽象类

    Java基础九--抽象类 一.抽象类介绍 /*抽象类:抽象:笼统,模糊,看不懂!不具体. 特点:1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰. 抽象方法必须定义在抽象类中 ...

  9. Java面向对象之多态(来源于身边的案例)

    2019年1月3日 星期四 Java面向对象之多态(来源于身边的案例) 1. 为什么要用多态? 1.1 多态是面向对象的三大特性之一 1.2 多态是基于接口设计的模型 1.3 多态具有横向扩展特性 1 ...

随机推荐

  1. 所有在Linux系统下 arp -d $ip 命令只能清除一个IP地址的对应MAC地址缓存,可以使用组合命令操作。

    https://blog.csdn.net/u011641885/article/details/48175239 https://blog.csdn.net/zj0910/article/detai ...

  2. - > 动规讲解基础讲解八——正整数分组

    将一堆正整数分为2组,要求2组的和相差最小.例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的. 整数个数n<=100,所有整数的和<=1 ...

  3. css3 transform对其他样式影响,(尤其是position:flixed)

    1.transform 会为当前元素添加 position : relative 特性: 当 magin 为负值的时候,就会覆盖到前面的 元素, 然而如果给前面元素添加了transform 属性后,前 ...

  4. ZOJ 3827 Information Entropy(数学题 牡丹江现场赛)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemId=5381 Information Theory is one of t ...

  5. LeetCode 160. Intersection of Two Linked Lists (两个链表的交点)

    Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...

  6. DM8168 dead JTAG clock

    针对新板调试,不针对EVM板. TI XDS560连上DM8168 20pin仿真接口 launch 8168.ccxml,右击CortexA8,选择Connect Target 出现错误例如以下: ...

  7. ERROR (ConnectionError): HTTPConnectionPool (Caused by &lt;class &#39;socket.error&#39;&gt;: [Errno 111] Connecti

    感谢朋友支持本博客.欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免.欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  8. 第一章、Tiny4412 U-BOOT移植一 说明【转】

    本文转载自:http://blog.csdn.net/eshing/article/details/37520291 一.移植前说明: 1.  特别声明:此文档是我的学习文档,里面肯定有错误地方,仅供 ...

  9. 02-JZ2440裸机学习之GPIO实验【转】

    本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/54910717 版权声明:本文为博主原创文章,转载请注明http://blog.c ...

  10. 在word中doc与docx的区别是什么(整理)

    在word中doc与docx的区别是什么(整理) docx 是Office2007使用的,是用新的基于XML的压缩文件格式取代了其目前专有的默认文件格式,在传统的文件名扩展名后面添加了字母x(即.do ...