1.多态

1.1 多态的概述

什么是多态

  同一个对象,在不同时刻表现出来的不同形态

多态的前提

  要有继承或实现关系

  要有方法的重写

  要有父类引用指向子类对象

1.2 多态中的成员访问特点

成员访问特点

成员变量

  编译看父类,运行看父类

成员方法

  编译看父类,运行看子类

1.3 多态的好处和弊端

好处

  提高程序的扩展性。定义方法时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作

弊端

  不能使用子类的特有成员

1.4 多态中的转型

向上转型

  父类引用指向子类对象就是向上转型

向下转型

  格式:

1 子类型 对象名 = (子类型)父类引用;

2.抽象类

2.1 抽象类的概述

1.抽象类和抽象方法必须使用 abstract 关键字修饰

2.抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类

3.抽象类不能实例化(但是可以通过子类实例化,这种方法叫抽象类多态

4.抽象类的子类,要么重写抽象类中的所有抽象方法,要么是抽象类

2.2 抽象类的成员特点

成员的特点

  成员变量

    既可以是变量

    也可以是常量

构造方法

  空参构造

  有参构造

成员方法

  抽象方法

  普通方法

3.接口

3.1 接口的概述

接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。

Java中的接口更多的体现在对行为的抽象!

3.2 接口的特点

1.接口用关键字interface修饰

1 public interface 接口名 {}

2.类实现接口用implements表示

1 public class 类名 implements 接口名 {}

3.接口不能实例化

接口如何实例化呢?参照多态的方式,通过实现类对象实例化,这叫接口多态。

多态的形式:具体类多态,抽象类多态,接口多态。

4.接口的子类

要么重写接口中的所有抽象方法 要么子类也是抽象类

3.3 接口的成员特点

成员特点

  成员变量

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

构造方法

  没有,因为接口主要是扩展功能的,而没有具体存在

成员方法

  只能是抽象方法 默认修饰符:public abstract

3.4 类和接口的关系

类与类的关系

  继承关系,只能单继承,但是可以多层继承

类与接口的关系

  实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口

接口与接口的关系

  继承关系,可以单继承,也可以多继承

3.5 抽象类和接口的区别

成员区别

  抽象类

    变量,常量;有构造方法;有抽象方法,也有非抽象方法

  接口

    常量;抽象方法

关系区别

  类与类

    继承,单继承

  类与接口

    实现,可以单实现,也可以多实现

  接口与接口

    继承,单继承,多继承

设计理念区别

  抽象类

    对类抽象,包括属性、行为

  接口

    对行为抽象,主要是行为

JavaSE11-多态&抽象类&接口的更多相关文章

  1. 【Java基础】【09面向对象_多态&抽象类&接口】

    09.01_面向对象(多态的概述及其代码体现) A:多态(polymorphic)概述 事物存在的多种形态 B:多态前提 a:要有继承关系. b:要有方法重写. c:要有父类引用指向子类对象. C:案 ...

  2. 06 面向对象:多态&抽象类&接口&权限修饰符&内部类

    多态: /* 多态(polymorphic)概述 * 事物存在的多种形态 多态前提 * a:要有继承关系. * b:要有方法重写. * c:要有父类引用指向子类对象. * 成员变量 * 编译看左边(父 ...

  3. PHP中多态,抽象类,接口,

    小例子: 需求:公司定义一个接口让我们开发功能 usb.interface.php: <?php interface USB{ public function run(); } store.cl ...

  4. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  5. python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)

    一.昨日复习 派生方法和派生属性 super 只有在子父类拥有同名方法的时候, 想使用子类的对象调用父类的方法时,才使用super super在类内 : super().方法名(arg1,..) 指名 ...

  6. python面向对象 : 抽象类(接口类),多态,封装(私有制封装)

    一. 抽象类(接口类) 与java一样, python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类, 它的特殊之处在于只能被继承, 不能被实例化. 从设计角度去看, 如果类是从现实对 ...

  7. 【学习笔记】--- 老男孩学Python,day18 面向对象------抽象类(接口类), 多态, 封装

    抽象类,接口类 Python没有接口这个概念 抽象类(接口类): 目的是制定一个规范 要学会归一化设计,有重复的东西就要想把它们合并起来 from abc import ABCMeta, abstra ...

  8. python day - 19 抽象类 接口类 多态 封装

    一. 抽象类接口类即制定一个规范 特点: 1.不可被实例化. 2.规范子类当中必须事先某个方法. 3.在python中有原生实现抽象类的方法,但没有原生实现接口类的方法. 例题:制定一个规范就是,子类 ...

  9. java 面向对象面试题,问答题,构造方法,抽象类,继承,多态,接口,异常总结;

    一,构造方法的特点 面向对象的思想是如何在java展现的呢? 就是通过类和对象 类是一组相关的属性和行为的集合.是一个抽象的概念. 对象是该类事物的具体表现形式.具体存在的个体. 一.抽象类的抽象方法 ...

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

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

随机推荐

  1. VM共享文件夹设置

    1.打开设置 2.启动共享文件夹 3.设置共享文件夹向导     4.验证共享是否成功 出现以下情况说明共享成功,否则就是失败  

  2. JVM(一)-JVM入门

    JVM的定义: JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的 ...

  3. laydate 使用

    官网 http://www.layui.com/doc/modules/laydate.html 参考 http://www.cnblogs.com/fengpingfan/p/4660273.htm ...

  4. python编码规范以及推导式的编写

    一.python 的编码规范

  5. 对于char,short和byte类型的运算

    对于char,short和byte这些类型在计算时都会提升到int型来计算,所以a+b=3(这个3是int型的,所以我们需要将它强转成为byte类型,才不会出错.但是使用 += 或者 ++ 运算符可以 ...

  6. appium元素定位工具

      appium元素定位工具介绍 使用uiautomatorviewer定位工具 使用Appium Inspector定位工具 使用uiautomatorviewer定位工具 谷歌在Android S ...

  7. DFS文件服务器实验手册

    基础配置信息清单 计算机名 角色 网络配置 DNS WIN-6E DC 11.1.1.10/24 127.0.0.1 WIN-C4 Node1 11.1.1.20/24 11.1.1.10 WIN-4 ...

  8. DNS、IP地址、子网掩码和默认网关

    一.DNS服务器 DNS是指:域名服务器(Domain Name Server).在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转 ...

  9. C语言实现聊天室(windows版本)

    来源:微信公众号「编程学习基地」 目录 C语言聊天室 运行效果 分析设计 多线程 线程的同步 服务端设计 遇到的问题 C语言聊天室 基于 tcp 实现群聊功能,本项目设计是在windows环境下基于套 ...

  10. 解决linux挖矿病毒(kdevtmpfsi,sysupdate, networkservice)

    突然发现公司测试服务器CPU过高,是这两个sysupdate, networkservice进程,很明显是被挖矿了,记录下来以供参考. 病毒会把一些文件给加i锁或a锁,导致无法修改数据,所以某些操作需 ...