day14 多态与抽象

多态:相同的行为,不同的实现。

多态分为:静态多态和动态多态。

静态多态:在编译期即确定方法的实现和效果。——使用重载实现

动态多态:运行后才能确定方法的实现和执行效果。——使用动态绑定和重写实现

动态绑定技术:引用数据类型转换、instanceof关键字

引用数据类型转换:向上转型:父类的引用指向子类的对象。

向下转型:运行起来后,确实是本类引用指向本类对象或者指向子类对象,才能成功。

instanceof关键字:用于判断运行时对象的真正类型,判断对象是否是某个类的实例。返回true/false。

用法:对象 instanceof 类名

多态的应用:多态参数:就是方法的形参是一个引用的时候,该引用兼容的任何对象都可以传递给该方法。

多态集合:就是存放不同数据类型的集合。例如: Object[]

抽象(abstract):

当abstract修饰方法的时候,该方法为抽象方法,表示类有这个方法,该方法的实现由子类完成。

当abstract修饰类的时候,该类为抽象类,抽象类不能产生对象。

注意:1、有抽象方法的类一定是抽象类

2、抽象类不一定有抽象方法(语法允许)

3、抽象类除了用abstract修饰外,其它跟普通类一样,属性,构造(给子类用),已实现的方法等等。

4、子类在继承抽象类的时候,必须重写父类全部抽象方法,否则这个类也是抽象类。

abstract与final修饰类的比较:

abstract设计父类,不能产生对象,能继承。

final设计最终类,不能被继承,能产生对象。

时间: 2025-01-04 14:47:57

day14 多态与抽象的相关文章

多态与抽象以及接口

继承.封装.多态.抽象是面向对象编程的四大基本特征.封装隐藏了类的内部实现机制,在不影响用户使用的前提下,改变类的内部结构,从而保护了数据.继承则是通过重写父类代码,既可以多态,也可以让代码的复用性大大提高.所谓多态,就是同一种行为,不同的对象不同的体现,java的多态弥补了其自身单一继承的缺陷. 多态又分为,静态多态和动态多态. 静态多态是指程序在编译时就能决定其调用的方法,也称编译时多态,说的更直接静态多态实现方式就是方法的重载. 多态多态是指程序在运行中系统多态确定方法所指的对象,也称为运

java学习笔记(八)多态与抽象

多态和抽象是从继承引出来的两个重要的概念,多态允许对象以多种形式存在,而抽象则允许创建抽象类. 多态是指一个对象有多种形式的能力.一个类的子类可以定义它们唯一的行为,同时共享父类的某些相同特征.动态多态指在运行中系统才能动态确定方法所指的对象. 多态的技术基础: 向上转型技术:一个父类的引用变量可以指向不同的子类对象,或者说一个子对象可以被当做一个父类类型; instanceof关键字:用于判断运行时对象的真正类型; 动态绑定技术:运行时根据父类引用变量所指对象的实际类型执行相应的子类方法,从而

继承、类的高级概念、多态和抽象、接口

private 只能在自己的类中访问得到. public 表 示共有的,在任何类中调到. protected 在所有类中 defult 在自己以及类中调用到. 本类 同一包中不同类 不同包 子类 piviate 是 是 是 是 public 是 是 是 protected 是 是 default 是 extends继承类 super . 类名(): 操类 子类中调用副类方法 public class salary extends Employee{ } 使用“is a ”判断继承是否正确 所有类

JAVA——多态和抽象

多态和抽象从继承引出来的两个重要的概念,多态允许以多种形式存在,而抽象则允许创建抽象类. 在Java中,多态有两种理解方式:第一种是对象的不同的方法可以用相同的一个方法名,也就是重载的概念.另一种是同一对象根据不同的消息执行相应的行为,也可以这样认为发送消息给某一对象,让对象自行选择哪种相应的行为.根据这两种方式,所以多态分为静态多态和动态多态: ■静态多态指的是程序在编译时,系统就能决定调用哪个方法,所以也称为编译时多态.在Java中,静态多态实现的方法就是方法重载,其调用规则是依据对象在定义

java面向对象编程--第九章 多态和抽象

9.1多态 在生物学中,是指一个生物或物种可以有多种不同的形式或阶段: 在OOP中,多态是指一个对象有多种形式的能力. 多态可以说是面向对象编程的精髓所在.java中之所以引入多态的概念,原因之一是它在类的继承问题上和C++不同.单继承保证了继承关系的简单明了,但势必在功能上有很大的限制. 由于子类对象中包含一个完整的父类对象,所以父类变量中定义的方法和属性在子类对象中都能找到,所以允许一个父类变量引用子类对象,但反过来却不行,因为子类的方法和属性可能多于父类. 多态调用时,用父类变量指向子类对

类、多态、抽象、接口小结

什么是类 类是具有相同的属性和方法的一堆对象的集合. 什么是对象 万物皆对象,日常生活中能看到和摸到的东西都是对象. 对象由属性和行为组成 属性是对象所具有的特征,行为是对象可以做的动作 类和对象的关系 类是对象的描述,对象是类的实例 对象的每个属性被表示为类中的一个成员变量 对象的每个行为成为类中的一个方法 什么是构造函数 构造函数是类中的一个特殊方法,该方法在对象实例化时被调用.构造函数的用途是当对象实例化时,初始化对象中的成员变量. final关键字 1.final 可修饰变量(创建符号常

JavaOO 多态和抽象

多态:相同的行为,不同的实现(重写.重载) 多态: 1.静态多态:编译时,系统就能确定调用的是哪个方法---使用重载实现 2.动态多态:运行中系统才能动态确定方法所指的对象---使用动态绑定和重写实现 动态多态的技术基础: 引用数据类型转换的前提:不是任意引用数据类型都可以进行转换(没办法"指鹿为马"),只有有继 承关系的类才能转换. 1.向上转型技术---自动转换类型---把小类型的对象放到大类型的引用中---没有任何风险,绝对成功 ---子类对象中由于包含了一个完整的父类对象部分,

多态和抽象

引用数据类型:只有有继承关系的,才有可能做类型转换,其它的没有可能多态的分类一.静态多态 指的是编译时,系统就能决定调用哪个方法二.动态多态 指的是运行中系统才能动态确定方法所指的对象多态的技术基础: 1.向上转型:一个父类的引用变量可以指向不同的子类对象 2.向下转型:把父类的值赋给子类的变量,有风险,不一定成功抽象类的特点 1.抽象类不能产生对象 2.抽象类存在的意义就在于产生子类 3.抽象方法里面可以定义属性.方法.构造.初始化块,普通类有的它的有 4.语法上允许一个抽象类里面没有抽象方法

面向对象(封装、继承、多态、抽象)

封装--封装主要是基于类的属性,本类中的属性私有化,即有private修饰词来加以修饰,生成GET,SET方法来给外界调用. 继承--java继承是面向对象的最显著的一个特征.继承是从已有的来中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力. 多态--java的多态是指对非静态方法的多态,父类的引用来调用子类的方法. 抽象--使用关键词abstrace声明的类叫做"抽象类".如果一个类里包含了一个或多个抽象方法,这个类就指定为抽象类."抽象方法"