Java Base OOP 方法的重写

方法重写(override/overriding):重新写、覆盖

重写:必须要有继承、发生在父子类中,方法名相同,参数列表相同

重写方法被调用时,看对象的类型(也就是子类类型)

重写和重载的区别

重写:必须有继承,发生在父子类中,方法名相同,参数列表相同(一般用于在派生类中修改超类的方法)

重载:发生在同一个类中,方法名相同,参数列表不同,与返回值无关(是完全不同的方法,只是方法名相同而已)

package和import:

package:声明包

作用:避免类的命名冲突,同包中的类不能同名,不同包中的类名可以同名,

类的全称:包名.类名,报名常常有层次结构

建议:包名所有字母都是小写,说明package声明包必须位于第一行

import:导入类

同包中的类可以直接访问,不同包的类不能直接访问,若想访问:

先import导入类,在访问类或使用类的全称进行访问

4.访问修饰符:
封装的意义:隐藏一些东西,暴露一些东西,来保护数据的安全

public:公开的,任何类

private:私有的,本类

protected:受保护的,本类、派生类、同包类

默认的:什么也不写,本类、同包类

1.类的访问权限只能是public或者默认的

2.类中成员(包含、类的属性、行为、方法等)的访问权限如上四种都可以

static:静态的

静态变量:

由static修饰,属于类,存储在方法区中,只有一份,常常通过类名点来访问

何时用:所有对象所共性共享的数据(图片、音频、视频等)

静态方法:

有static修饰,属于类存储造方法区中,只有一份,常常通过类名点来访问,静态方法没有隐式this传递,所以不能直接访问实例成员

何时用:方法的操作与对象无关

静态代码块:
由static修饰,属于类在类被加载时期自动执行,一个类只能被加载一次,所以静态块也只执行一次

何时用:初始化/加载静态资源(图片、音频、视频等)

补充:

1.成员变量分两种:

实际变量:没有static修饰,属于对象的,存储在堆中,有几个对象就有几份,通过引用打点来访问

静态变量:有static修饰,属于类的,存储在方法区,只有一份,通过类名打点来访问

2.内存管理:有JVM来管理的

堆:new出来的对象(包括成员变量)

栈:局部变量(包括方法的参数)

方法区:.class字节码文件(包含静态变量、所有方法)

3.在构造方法中给实例化变量做初始化

在静态块中给静态变量做初始化

上一篇:一份简易的OOP教程


下一篇:AOP与OOP有什么区别,谈谈AOP的原理是什么(1),android系统四层架构