JavaBean的基本需求

属性:private Type ***

提供属性的存取方法

取方法命名:get***

存方法命名:set***

提供缺省(无参)的构造器

继承

Java不能多重继承,可以多层继承,Java.lang.Object类是所有类的根

继承类和超类直接应该存在一种 is-a的关系,即继承类是超类的一种;

父类引用指向子雷对象时,如果子类重写了父类方法,那么调用的是子类的方法;

类里只能包含成员变量和成员函数;

关于父类引用指向子类对象()

1、如果想实现多态,那么必须有三个条件:父类引用、子类对象、方法覆盖;

2、没有方法覆盖,那只能解释为父类引用去访问一个子类的方法,当然父类引用没有这么大范围的权限;

PS:多态实际上是一种机制,在编译时刻会生成一张虚拟表,来记录 所有覆盖的方法,没有被覆盖的方法是不会记录到这张表的,若一个父类引用调用了没有覆盖的子类方法,那么是不符合该表的,编译时会报错。在执行程序的时候,虚拟机会去这张虚拟表中找覆盖的方法,比如引用中实际上存在的是一个子类对象引用,那么就会找子类中的相应的覆盖的方法来执行。

覆盖、重载、多态

上边已经提到了这几个概念,现在再进一步的说说;

一、覆盖

1、覆盖方法必须有和被覆盖的方法具有相同的方法名称,参数列表和返回类型;

2、如果在子类中调用父类中被覆盖的方法用super

3、覆盖方法时,不能使用比父类中被覆盖的方法更严格的访问权限;

4、只有存在继承才能有覆盖这个概念;

//临时想到一点:构造函数只能在构造函数中调用;

二、重载

只能通过参数个数,参数类型,参数位置来区分,不能通过返回类型区分;

作用:

1、同名函数,实现多个功能;

2、因为构造函数必须与类名同名,通过重载实现实例化不同功能的对象(这句话表达的不太明白,以后有合适的说法再改)

三、多态

多态提供了另一个层面上的接口与实现的分离,也就是把做什么和怎么做分开来,多态不仅能改善代码的结构,提高其可读性,而且能让你创建可扩展的程序。

向上转型(upcasting)

动态绑定(dynamic binding)

向上转型会狭化接口

编译时、检查引用所指的方法;

运行时、实际调用的是子类对象所指的方法;

转载于:https://www.cnblogs.com/libiao/archive/2008/07/21/1248151.html

JAVA学习笔记(三)相关推荐

  1. java学习笔记(三):前端miniUI控件库入门

    java学习笔记(三):前端miniUI控件库入门 最近在一家公司实习学习,一上来就需要学习了解相关的前端内容--miniUI.而这个内容自己本身并没有了解学习过,上手也是遇到了不少的问题,于是想把自 ...

  2. java注解和反射——狂神说java学习笔记三

    原文链接:公众号狂神说 视频教程[狂神说B站]: https://www.bilibili.com/video/BV12J41137hu 如有侵权,联系立删 什么是注解 Annotation是从JDK ...

  3. 【Java学习笔记三】抽象类与接口

    对象的类型转换分为自动转换和强制转换两种 派生类向基类转换是自动转换,因为派生类中包含基类 基类向派生类的转换是强制转换 强制类型转换是通过在转换对象前面使用圆括号运算符来实现,圆括号内为要转换的目标 ...

  4. Java学习笔记三——数据类型

    前言 Java是强类型(strongly typed)语言,强类型包含两方面的含义: 所有的变量必须先声明后使用: 指定类型的变量只能接受预支匹配的值. 这意味着每一个变量和表达式都有一个在编译时就确 ...

  5. JAVA学习笔记(三十一)-电影系统案例

    伪代码 系统的角色类准备 用户购票 用户评分 商家功能 首页设计 先封装 public class Business extends User{// 店铺名称private String shopNa ...

  6. JAVA学习笔记(三十九)-打印流

    import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; i ...

  7. java学习笔记(三)----成员权限,构造函数,this用法

    成员权限                         本类    同包类    非同包子类    非同包非子类 public         y        y               y  ...

  8. 疯狂java学习笔记三

    面向对象 1.继承 extends关键字 抽象类 implement关键字 java1.8(函数式接口)–>Lamba表达式–>foreach方法–>函数接口 java1.8默认方法 ...

  9. Java学习笔记项目三:开发团队调度软件(尚硅谷)

    JAVA学习笔记开发团队调度软件 ①创建基础组件 Equipment 接口 package august.domain;/*** 设备领取** @author : Crazy_August* @Dat ...

  10. java学习笔记11--Annotation

    java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...

最新文章

  1. 收藏 | 知识图谱论文大合集,干货满满的笔记解读(附资源)
  2. python创建新文件-Python创建文件和追加文件内容实例
  3. AHOI2013 Round2 Day2 简要题解
  4. python 基础笔记十一 - random模块
  5. 反思应对焦虑:尽人事 听天命
  6. 【Linux】一步一步学Linux——traceroute命令(167)
  7. 基于xml进行bean装配
  8. 什么时候需要好教材和好教材是怎样的
  9. 浙大 PAT a1027
  10. 快速批量一个半小时插入1亿条数据到mysql
  11. AJAX,PHP,前端简单交互制作输入框效果
  12. 《HTML与CSS设计》课程总结,网页设计课程学习心得总结
  13. 2021年国内好用的可视化工具
  14. 关于idea链接oracle数据库出现[08006][17002] IO 错误: Got minus one from a read call, connect lapse 1 ms., Authen
  15. java计算机毕业设计直播购物平台源码+数据库+系统+lw文档
  16. 华为社招机考考什么_牛客网-华为-2020届校园招聘上机考试-软件类机考-3
  17. Android轻松实现日期选择器、生日选择器、自定义起始时间
  18. 如何在SM30维护表时自动写入表字段的默认值-事件(EVENT)
  19. Splatter Painting
  20. 应急物资管理体系概述

热门文章

  1. kafka消息消费有延迟_简易实现kafka延迟消息
  2. 【ZHYP005】子涵优品开发日志
  3. Buddy 内存管理机制(下)
  4. 区块链的崛起到底是大势所趋还是异军突起
  5. XML 文件加密与解密
  6. CentOS下连VisualSVN服务器时报SSL handshake failed: SSL error: Key usage violation in certificate has been d
  7. kernel下Documentation目录详解
  8. ROS源码学习 二、线程池
  9. 世上根本没有什么感同身受,只有冷暖自知
  10. 解决Could not find method xxx for arguments问题