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. 论文解读(LA-GNN)《Local Augmentation for Graph Neural Networks》

    论文信息 论文标题:Local Augmentation for Graph Neural Networks论文作者:Songtao Liu, Hanze Dong, Lanqing Li, Ting ...

  2. mybatis-plus对空字段 时间进行填充

    package com.tanhua.sso.handler; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; imp ...

  3. 【Openxml】颜色变化属性计算

    Openxml的颜色变化属性 目前Openxml存在颜色变化属性如下: 参数 说明 Hue 色调(色相) HueModulate 色调调制,百分比 HueOffset 色调偏移量,角度值 Satura ...

  4. BUUCTF-另一个世界

    另一个世界 010editor 打开最下方发现011开头字符串,应该是二进制 得到flag 看也有师傅写的是说八个一组转ascii码,现在也不是很理解啥意思.贴一下其他师傅的python脚本,算出的结 ...

  5. 集成学习——Adaboost(手推公式)

  6. leetcode题解#3:无重复字符的最长子串

    leetcode题解:无重复字符的最长子串 题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb"输出: 3 解释 ...

  7. OpenLayers入门(一)

    OpenLayers简介 OpenLayers(https://openlayers.org/)是一个用来帮助开发Web地图应用的高性能的.功能丰富的JavaScript类库,可以满足几乎所有的地图开 ...

  8. java基础知识点梳理

    前言 在别人追问我以下几个问题,自己在问题回答上不够全面和准确,对此自己把专门针对这几个问题进行总结! java相关问题 1.Java中构造方法跟普通方法的区别? 构造方法与普通方法的调用时机不同. ...

  9. python各种BUG报错解决

    报错1 python学习交流群:660193417### Could not build atari-py: Command '['cmake', '..']' returned non-zero e ...

  10. windows脚本bat做文件备份

    @ECHO OFF echo 切换到当前目录... cd /d %~dp0% echo 开始复制Code1... echo d | XCOPY Code1 ..\备份\bakdir\Code1 /s ...