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. ThreadPoolExecutor源码分析-面试问烂了的Java线程池执行流程,如果要问你具体的执行细节,你还会吗?

    Java版本:8u261. 对于Java中的线程池,面试问的最多的就是线程池中各个参数的含义,又或者是线程池执行的流程,彷佛这已成为了固定的模式与套路.但是假如我是面试官,现在我想问一些更细致的问题, ...

  2. 新鲜出炉!2020年最新java面试题大全,面试突击必备!

    前言 发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了一套Java面试题,希望对大家有帮助哈~ 打算这几天每天更新15~20题.(这样有助于你们阅读和理解!)我们先从简单的开始 1 ...

  3. netsniff使用

    1 netsniff安装与使用 首先直接下载源码包进行部署 安装一些前置包(安装完成的自动忽略) sudo apt install pkg-config sudo apt install libcli ...

  4. CDR简单制作透明字体【6·18特惠倒计时3天!】

    将图片剪贴到文字中是平面设计常用的一种处理方法之一,一般是将图片置入到该文字,且图片的外轮廓是沿着文字的形状剪贴的,这种处理手法被广泛应用于排版设计中.本教程结合蒙版功能加阴影效果做出特殊的视觉效果. ...

  5. Thread.start() ,它是怎么让线程启动的呢?

    作者:小傅哥 博客:https://bugstack.cn Github:https://github.com/fuzhengwei/CodeGuide/wiki 沉淀.分享.成长,让自己和他人都能有 ...

  6. canvas 元素覆盖&穿透问题

    给网站添加canvas动态背景.完后发现有a标签无法点击,想到是canvas覆盖了(但有些是可以的).网上查找,有解决穿透的问题,但canvas的鼠标事件会无效.后发现是定位问题. canvas样式 ...

  7. testlink——解决测试度量与报告或图表中中文显示乱码问题

    解决问题之前的图表: 解决方法: (1)下载SimHei.TTF字体(可以在自己电脑的C:/windows/fonts目录下找到,若找不到,可以在网上下载) (2)将SimHei.TTF文件拷贝到te ...

  8. 安装Linux软件时遇到这个问题,如何解决?

    提示 Could not get lock /var/lib/dpkg/lock 报错? 有些小伙伴在使用 apt 包管理器更新或安装软件时,可能会遇到过诸如以下的错误提示: E: Could not ...

  9. 一:robot framework环境安装

    1.安装robot framework: 打开cmd进入dos下,输入 pip install robotframework Microsoft Windows [版本 10.0.18362.267] ...

  10. sentinel整合servlet

    <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-web-ser ...