JAVA学习笔记(三)
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学习笔记(三)相关推荐
- java学习笔记(三):前端miniUI控件库入门
java学习笔记(三):前端miniUI控件库入门 最近在一家公司实习学习,一上来就需要学习了解相关的前端内容--miniUI.而这个内容自己本身并没有了解学习过,上手也是遇到了不少的问题,于是想把自 ...
- java注解和反射——狂神说java学习笔记三
原文链接:公众号狂神说 视频教程[狂神说B站]: https://www.bilibili.com/video/BV12J41137hu 如有侵权,联系立删 什么是注解 Annotation是从JDK ...
- 【Java学习笔记三】抽象类与接口
对象的类型转换分为自动转换和强制转换两种 派生类向基类转换是自动转换,因为派生类中包含基类 基类向派生类的转换是强制转换 强制类型转换是通过在转换对象前面使用圆括号运算符来实现,圆括号内为要转换的目标 ...
- Java学习笔记三——数据类型
前言 Java是强类型(strongly typed)语言,强类型包含两方面的含义: 所有的变量必须先声明后使用: 指定类型的变量只能接受预支匹配的值. 这意味着每一个变量和表达式都有一个在编译时就确 ...
- JAVA学习笔记(三十一)-电影系统案例
伪代码 系统的角色类准备 用户购票 用户评分 商家功能 首页设计 先封装 public class Business extends User{// 店铺名称private String shopNa ...
- JAVA学习笔记(三十九)-打印流
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; i ...
- java学习笔记(三)----成员权限,构造函数,this用法
成员权限 本类 同包类 非同包子类 非同包非子类 public y y y ...
- 疯狂java学习笔记三
面向对象 1.继承 extends关键字 抽象类 implement关键字 java1.8(函数式接口)–>Lamba表达式–>foreach方法–>函数接口 java1.8默认方法 ...
- Java学习笔记项目三:开发团队调度软件(尚硅谷)
JAVA学习笔记开发团队调度软件 ①创建基础组件 Equipment 接口 package august.domain;/*** 设备领取** @author : Crazy_August* @Dat ...
- java学习笔记11--Annotation
java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...
最新文章
- 收藏 | 知识图谱论文大合集,干货满满的笔记解读(附资源)
- python创建新文件-Python创建文件和追加文件内容实例
- AHOI2013 Round2 Day2 简要题解
- python 基础笔记十一 - random模块
- 反思应对焦虑:尽人事 听天命
- 【Linux】一步一步学Linux——traceroute命令(167)
- 基于xml进行bean装配
- 什么时候需要好教材和好教材是怎样的
- 浙大 PAT a1027
- 快速批量一个半小时插入1亿条数据到mysql
- AJAX,PHP,前端简单交互制作输入框效果
- 《HTML与CSS设计》课程总结,网页设计课程学习心得总结
- 2021年国内好用的可视化工具
- 关于idea链接oracle数据库出现[08006][17002] IO 错误: Got minus one from a read call, connect lapse 1 ms., Authen
- java计算机毕业设计直播购物平台源码+数据库+系统+lw文档
- 华为社招机考考什么_牛客网-华为-2020届校园招聘上机考试-软件类机考-3
- Android轻松实现日期选择器、生日选择器、自定义起始时间
- 如何在SM30维护表时自动写入表字段的默认值-事件(EVENT)
- Splatter Painting
- 应急物资管理体系概述
热门文章
- kafka消息消费有延迟_简易实现kafka延迟消息
- 【ZHYP005】子涵优品开发日志
- Buddy 内存管理机制(下)
- 区块链的崛起到底是大势所趋还是异军突起
- XML 文件加密与解密
- CentOS下连VisualSVN服务器时报SSL handshake failed: SSL error: Key usage violation in certificate has been d
- kernel下Documentation目录详解
- ROS源码学习 二、线程池
- 世上根本没有什么感同身受,只有冷暖自知
- 解决Could not find method xxx for arguments问题