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. Spark闭包 | driver & executor程序代码执行

    Spark中的闭包 闭包的作用可以理解为:函数可以访问函数外部定义的变量,但是函数内部对该变量进行的修改,在函数外是不可见的,即对函数外源变量不会产生影响. 其实,在学习Spark时,一个比较难理解的 ...

  2. Java基础—Java方法的调用

    Java方法的调用个主要有以下几种: 1.调用非静态方法 2.调用静态方法 3.方法与方法之间的调用 (1).静态方法内部调用其他方法 (2).非静态方法内部调用 1.调用非静态方法: 非静态方法的调 ...

  3. [python应用]python简单图片抓取

    前言 emmmm python简单图片抓取 1 import requests 2 import threading 3 import queue 4 from subprocess import P ...

  4. 凭借着这份Spring面试题,我拿到了阿里,字节跳动美团的offer!

      一般问题 1.1. 不同版本的 Spring Framework 有哪些主要功能?   1.2. 什么是 Spring Framework? Spring 是一个开源应用框架,旨在降低应用程序开发 ...

  5. 怎么借助CrossOver安装想要的Windows程序

    面对安装双系统时的繁琐步骤,以及虚拟机软件那庞大的体积,CrossOver的出现,让一切都变得简单起来. CrossOver自带的一系列的Windows应用,涵盖游戏软件.办公软件.设计软件等多个种类 ...

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

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

  7. Contest 1445

    A \(a\) 中第 \(i\) 小的配 \(b\) 中第 \(i\) 大的. 限制相同,这样配最平均. 时间复杂度 \(O\left(tn\log n\right)\). B 最终的一百名至少是第一 ...

  8. P4771 八百标兵奔北坡

    观察题目中关于北边的定义,发现是以当前点为顶点,向上的倒三角(自己想想为什么). 然后就可以直接 DP 了,令 \(f_{i,j}\) 表示点 \(\left(i,j\right)\) 的答案. \[ ...

  9. Java基础教程——Date类和Calendar类

    Date类和Calendar类都是关于日期的类,都在java.util包中,使用时需要import. Date java.util.Date类的对象用来表示时间和日期,用得最多的是获取系统当前日期和时 ...

  10. C构造类型 数组

    一.数组是什么 一组有个固定大小.相同数据类型的数据的集合. 数组可以分为:一维数组.二维数组.三维数组....(维数不止一维:多维数组) 表格 : 行和列(二维数组) 二.一维数组 1.一般形式 类 ...