1.方法的重写(Override):重新写、覆盖

1)发生在父子类中,方法名称相同,参数列表相同,方法体不同
2)重写方法被调用时,看对象的类型
2.重写与重载的区别:
1)重写(Override):
1.1)发生在父子类中,方法名称相同,参数列表相同,方法体不同
1.2)遵循"运行期绑定",看对象的类型来调用方法

(最后附带举例说明)

2)重载(Overload):
2.1)发生在一个类中,方法名称相同,参数列表不同,方法体不同
2.2)遵循"编译期绑定",看引用的类型来绑定方法
3.package:
1)作用:避免类的命名冲突
2)类的全称: 包名.类名
3)包名可以有层次结构,同包中的类不能同名
4)建议:包名所有字母都小写
import:
1)同包中的类可以直接访问
不同包中的类不能直接访问,若想访问有如下两种方式:
1.1)先import声明类再使用----建议
1.2)类的全称----------------太繁琐,不建议
4.访问控制修饰符:
1)public:公开的,任何类
2)private:私有的,本类
3)protected:受保护的,本类、子类、同包类
4)默认的:什么也不写,本类、同包类
类的访问修饰: public、默认的
类中成员的访问修饰: 如上4种都可以
5.内存管理:由JVM管理---------------------了解
1)堆:
1.1)存储所有new出来的对象(包含成员变量)
1.2)没有任何引用所指向的对象为垃圾,垃圾回收器(GC)不定时到内存中清扫垃圾,

回收过程是透明的,但不一定一发现垃圾就立即回收,调用System.gc()建议JVM尽快调度GC来收垃圾
1.3)内存泄漏:不再使用的内存还没有被及时的回收
    建议:不再使用的对象及时将引用设置为null
1.4)成员变量的生命周期:
    创建对象时存在堆中,对象被回收时一并消失
2)栈:
2.1)存储正在调用中的方法的所有局部变量(包括参数)
2.2)调用方法时,在栈中为该方法分配一块对应的栈帧,栈帧中存储的是所有的局部变量(包括参数),方法调用结束时,栈帧被清除,局部变量一并失效
2.3)局部变量的生命周期:
    调用方法时存在栈中,方法调用结束时与栈帧一并被清除


3)方法区:
3.1)存储的是.class字节码文件(包括方法、静态变量)
3.2)方法只有一份,能过this来区分具体的对象


6.static:静态的
1)静态变量:
1.1)由static修饰
1.2)属于类的,存储在方法区中,只有一份
1.3)常常通过类名点来访问
1.4)何时用:所有对象所共享的资源(图片、音频、视频等)


2)静态方法:
2.1)由static修饰
2.2)属于类的,存储在方法区中,只有一份
2.3)常常通过类名点来访问
2.4)静态方法没有隐式this传递的,
静态方法中不能直接访问实例成员
2.5)何时用:方法的操作仅与参数相关而与对象无关
3)静态块:
3.1)由static修饰
3.2)属于类的,在类被加载时自动执行,
因为类中被加载一次,所以静态块也只执行一次
3.3)何时用:加载/初始化静态资源(图片、音频、视频等)

/**
* 遵循"两同两小一大"原则:
* 1)两同:
* 1.1)方法名称相同
* 1.2)参数列表相同
* 2)两小:
* 2.1)子类方法的返回值类型小于或等于父类的
* 2.1.1)void时,必须相同
* 2.1.2)基本类型时,必须相同
* 2.1.3)引用类型时,小于或等于
* 2.2)子类抛出的异常小于或等于父类的--------异常之后
* 3)一大:
* 3.1)子类方法的访问权限大于或等于父类的
*/

//父类大,子类小
class Coo{
void show(){}
double test(){return 0.0;}
Doo sayHi(){return null;}
public Coo say(){return null;}
}
class Doo extends Coo{
//int show(){return 1;} //编译错误,void时必须相等
//int test(){return 0;} //编译错误,基本类型时必须相等
//Coo sayHi(){return null;} //编译错误,引用类型时必须小于或等于
public Doo say(){return null;} //引用类型时,小于
}

我是初学者,如有更新不好的,欢迎这位大神指出,谢谢大家!

更多精彩以后更新,转载注明!

java-重载、包修饰词以及堆栈管理的更多相关文章

  1. Java Business Process Management(业务流程管理) 初识环境搭建

    一.简介 (一)什么是jbpm JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易 ...

  2. java 重载规则

    首先看Java重载的规则: 1.必须具有不同的参数列表: 2.可以有不同的返回类型,只要参数列表不同就可以: 3.可以有不同的访问修饰符: 4.可以抛出不同的异常: 5.方法能够在一个类中或者在一个子 ...

  3. java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

    今天把sql server 2008 r2装了起来,64位的,然后就迫不及待地体验连接数据库的操作,编程语言是java.我一开始学了一种非常老的连接方式,使用JDBC-ODBC桥.初次使用不太熟练,所 ...

  4. 转:java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

    在Win7 64位系统下,使用Java+Access数据库编程,用Java连数据库时,出现错误提示,如下: Java java.sql.SQLException: [Microsoft][ODBC 驱 ...

  5. 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)

    摘自 http://blog.csdn.net/liujun13579/article/details/7773945 三十二.Java图形化界面设计--布局管理器之CardLayout(卡片布局) ...

  6. 三十三、Java图形化界面设计——布局管理器之null布局(空布局)

    摘自http://blog.csdn.net/liujun13579/article/details/7774267 三十三.Java图形化界面设计--布局管理器之null布局(空布局) 一般容器都有 ...

  7. 三十一、Java图形化界面设计——布局管理器之GridLayout(网格布局)

    摘自http://blog.csdn.net/liujun13579/article/details/7772491 三十一.Java图形化界面设计--布局管理器之GridLayout(网格布局) 网 ...

  8. Java基础-Eclipse第三方安装包管理工具之Maven

    Java基础-Eclipse第三方安装包管理工具之Maven 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩过Linux的小伙伴应该都知道yum吧,我们只要把搭建好的yum仓库配 ...

  9. Java异常---获取异常的堆栈信息

    Java 实例 - 获取异常的堆栈信息  Java 实例 以下实例演示了使用异常类的 printStack() 方法来获取堆栈信息: Main.java 文件 public class Main{ p ...

随机推荐

  1. 深入C++03:面向对象

    面向对象 类和对象.this指针 不用做太多笔记,都可以看初识C++的笔记: 记住:声明后面都要加":",比如声明方法和变量还有class结束的地方:而实现函数出来的地方是不需要加 ...

  2. re学习笔记

    re学习笔记 学习链接: https://regexlearn.com/zh-cn/learn \w: 数字字母下划线 \W: 非\w \d \D: !\d \s: space cha \S: !\s ...

  3. call apply bind的作用及区别? 应用场景?

    call.apply.bind方法的作用和区别: 这三个方法的作用都是改变函数的执行上下文,换句话说就是改变函数体内部的this指向,以此来扩充函数依赖的作用域 1.call 作用:用于改变方法内部的 ...

  4. word-制作三线表

    找一个表格或插入一个表格, 找到 [设计] [新建表格样式] [将格式应用于: 整个表格] 点击"框线设置"按钮,在弹出的下拉菜单中分别选择 [上框线] 和 [下框线],然后分别设 ...

  5. Python量化-如何获取实时股票信息

    如何获取实时股票信息 股票信息的接口有很多,之前大家常用的是新浪的,但在年初的时候,新浪的接口突然不能使用,给大家造成了很大的困扰,为此网上也有很多教程教大家如何从新浪获取数据,跟着教程弄了半天也不行 ...

  6. 基于thinkphp6 layui的优秀极速后台开发框架推荐

    很多时候我们在做项目开发的时候,苦于没有好一点的轮子,自己动手开发的话,太耗费时间了,如果采用VUE的话,学习成本跟调试也比较麻烦, 而且有时候选用的东西甲方也不太容易接受,现在给大家介绍一款优秀的极 ...

  7. Kolla部署Pike版本的OpenStack-allinone云平台

    1 openstack 概述 openstack概述 : OpenStack是一个NASA美国国家航空航天局和Rackspace合作研发 的,以Apache许可证授权,并且是一个自由软件和开放源代码项 ...

  8. Vue的基础语法

    前言 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是, Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手, ...

  9. Lydon 分解与最小表示法

    我们定义一个串是 \(\text{Lyndon}\) 串,当且仅当这个串的最小后缀就是这个串本身. 该命题等价于这个串是它的所有循环表示中字典序最小的. 引理 1:如果 \(u\) 和 \(v\) 都 ...

  10. C语言-数据结构-结构体

    一.结构体的定义 数组(Array)是一组具有相同类型的数据的集合.但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组 ...