一. 多态同一个对象在不同时期表现的出不形态,要构成多态必须满足以下三个前提1.要有继承或实现2.有方法的重写3.有父类的引用指向对象eg:public class Animal {public String name ="动物";public void Eat(){System.out.println("我是"+name);System.out.println("吃东西");}}public class Cat extends Animal { // 1.有继承public void Eat(){ // 2.有方法重写System.out.println("猫吃鱼");}}public class DuoTaiDemo {public static void main(String[] args) {Animal a = new Cat();  // 3. 有父类引用指向a.Eat();}}
二.多态的成员访问特点:对于成员变量:编译看左边,执行也看左边 (以左边的类为准,调用的都是左边类中的成员方法 即 Animal 类中的成员变量)对于成员方法:编译看左边,执行也看右边 (以左边的类为准,去编译如果没有方法会报错,但是执行的时候是调用的左边的的方法,因为方法被重写 即执行Cat类中的Eat()方法)
三.多态的好处和弊端好处:定义方法的时候用父类作为参数,将来做操作时传具体的子类,然后使用子类的相关操作(变量和方法,子父类都拥有的)坏处:不能使用子类特有的功能(子类的有功能,父类没有实现的)
四.怎么在多态的情况下,使用子类独有的功能呢?向上转型 :Animal a = new Cat();   左边是父类,右边是子类,这是向上转型向下转型: Cat cc = (Cat)a; a 之前是Animal类,现在强转成Cat类,现在就可以使用Cat类的独有方法(能向下转型的根本原因是:a 在栈内里指向一个堆内存空间地址,而这个空间地址实际就是Cat对象,所以cc直接引用了堆内存空间)
五.抽象类1.没有方法体的方法应该定义为抽象方法,类中如果有抽象方法,那么该类一定是抽象类。2.抽象方法和抽象方法必须由 abstract 来修饰3.抽象类里可以没有抽象方法(没有意义),但是有抽象方法必然是抽象类。4.抽象类不能直接实像化对象,参照多态的方式,通过子类对象实例化,叫抽象化多态5.抽象类的子类要么重写抽象类中所有的抽象方法,public class Zi extends Fu(){重写所有Fu类中的抽象方法}要么本身是抽象类 public abstract class Zi extends Fu(){ 不用重写Fu类中的抽象方法}6.抽象类可能成员变量(变量,常量final),也可以有构造方法,但不能实例化,仅用于子类访问父类时初始化父类数据,可以有成员方法:抽象方法:限定子类必须完成某些动作(子类必须要重复写父类中的抽象方法 )非抽象方法:提高代码的复用性

Java 学习多态笔记相关推荐

  1. 集合框架(java学习总结笔记)

    集合框架和Iterator接口 简介 集合框架:用于存储数据的容器. 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构. 集合接口与实现分离 接口:表示集合的抽象数据类型.接口允许我们操作集 ...

  2. java学习---新手笔记,多多包涵

    引用数据类型{ 类, 接口, 数组 } Java局部变量 局部变量声明在方法.构造方法或者语句块中: 局部变量在方法.构造方法.或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁: 访问修饰 ...

  3. Java学习--多态

    1. 多态 多态:同一个对象(实物),在不同时刻体现出来的不同状态 多态的前提: A:要有继承关系 B:要有方法重写 C:要有父类引用指向子类对象 父类 f = new 子类() 多态中的成员访问特点 ...

  4. java super object,java学习记录笔记--继承,super,Object类

    继承: Java中的继承是单继承的. 1.子类拥有父类的全部属性和方法. 可是属性和方法的修饰符不能使private. 2.能够复用父类的代码. 方法的重写须要满足的条件: a.返回值类型 b.方法名 ...

  5. java 学习心得笔记

    j2ee 模式 value object(值对象)用于把数据从某个对象/层传递到其他对 象/层的任意 java 对象. 通常不包含任何业务方法. 也许设计有公共属性,或者提供可以获取属性值的 get ...

  6. java学习笔记day09 final、多态、抽象类、接口

    java学习笔记day09 思维导图 final . 多态 . 抽象类 . 接口 (都很重要) 一.final 二.多态 多态中的成员访问特点⭐ [P237] 多态的好处 [P239] 多态的弊端 向 ...

  7. 【Java学习笔记二】继承和多态

    与C++不同的是,在Java中,一个类只能直接继承另一个类,而不允许继承多个类,这个新类称为继承类.派生类或者子类,而被继承的类称为基类或者父类. 继承类能够继承基类的群不属性和行为. 面向对象程序设 ...

  8. 基于 Java 机器学习自学笔记 (第63-65天:集成学习之AdaBoost)

    注意:本篇为50天后的Java自学笔记扩充,内容不再是基础数据结构内容而是机器学习中的各种经典算法.这部分博客更侧重于笔记以方便自己的理解,自我知识的输出明显减少,若有错误欢迎指正! 目录 一.关于集 ...

  9. Java学习笔记之基础篇

    Java学习笔记之基础篇 目录 Java如何体现平台的无关性? 面向对象(OO)的理解 面向对象和面向过程编程的区别 面向对象三大特征 静态绑定和动态绑定(后期绑定) 延伸:类之间的关系 组合(聚合) ...

最新文章

  1. ubuntu16.0.4 opencv4.0.0 GPU 版本的 SURF
  2. 华为笔记本怎么激活windows_取代Windows?最美国产操作系统诞生,华为笔记本电脑已搭载...
  3. 一定是你想要的微服务资源springboot、springcloud、docker、dubbo
  4. wepy公共样式_wepy框架开发小程序文档
  5. android 图片轮播
  6. 性能测试工具curl-loader(linux)
  7. HDU 2586 How far away ?【LCA】
  8. soapui和cxf的却别_根据wsdl文件用soapUi快速构建webService服务(有图有真相)
  9. 重启手机出现机器人加一个叹号_解决win10上不了网出现红叉,网卡驱动异常代码56的问题...
  10. 基于阿里云物联网平台实现的简易出入监控
  11. 【数据结构的魅力】003.算法归并与随机快排
  12. 百度api申请key
  13. Xshell 6安装和使用教程
  14. 埃氏筛法求区间内素数并输出
  15. 太牛逼了!从Python入门到入魔
  16. 时间不够用?柳比歇夫时间管理法帮到你
  17. iPhone x 解决启动图适配上下黑边的问题(排除所有其他原因后,发现是图片尺寸问题)
  18. 在阿里,40岁的奋斗姿势
  19. 苹果市场占有率_苹果耳机销售速度超手机,占据TWS耳机半壁江山
  20. bootstrap-table合并单元格附带可能出现的问题

热门文章

  1. 7月国内手机出货量3419.9万部 5G手机果然还是很少!
  2. 为真全面屏探路?2019款新iPhone将采用超小前置摄像头
  3. 特斯拉Model 3本周平均日产约900辆 7000辆周产量有望
  4. 拳王公社:有哪些一个人就能做的创业赚钱项目?90后年赚30W逆袭案例!
  5. 在windows XP下如何用Vmware装Linux操作系统
  6. 服务器集群名称是否可修改,云服务器可以集群吗
  7. 从源码角度理解 FragmentTransaction实现
  8. C语言怎么定义001为int,C语言基础-01-基本数据类型
  9. python tk text 自动换行_Python tkinter之Text
  10. html背景图适应div_CSS实现背景图片屏幕自适应