Java面向对象04-继承,访问控制修饰符,static和final

时间:2022-05-14 21:07:54

方法的重写 (override)

1. 发生在父子类方法签名相同,方法体不同
2. 重写方法被调用时,看对象的类型不看引用的类型
3. 重写和重载的区别:
1)重载—发生在一个类中,方法名相同,参数列表不同,方法体不同
遵循编译期绑定,通过参数(引用)的类型来绑定调用方法
2)重写—发生在父子类中,方法签名相同,方法体不同
遵循运行期绑定,通过对象的类型来绑定调用方法
4. 重写注意事项—”两同两小一大”原则
1)”两同”—方法名,参数列表相同
2)”两小”—子类的返回值类型小于或等于父类
*返回值类型为void或者基本类型,父子类必须相同
*返回值类型为引用类型,子类必须小于或等于父类
—子类的抛出异常小于或等于父类
3)”一大”—子类的访问权限大于或等于父类

import

  1. 用来引进类
  2. 语法:import 包名.类名
  3. 同包中的类可以直接访问
    不同包中的类有两种方式访问
    1)用import语句导入 import 包名.类名
    2)写全称 包名.类名—不建议

package

  1. 避免类名冲突,所有字母小写
  2. 可以有层次结构 全称:包名.类名
  3. 一般命名规范:公司域名反写.项目名称.模块名.类名

访问控制修饰符

  1. public 权限最大,可以在任何地方调用
  2. protected 受保护的,可以在子类,本类,同包类访问
  3. private 权限最小,只可以在本类中访问
  4. 默认的 可以在本类和同包类访问
  5. 类可以用public和默认的修饰,类成员可以用以上四种修饰

static

成员变量分两种

1. 实例变量—属于对象的,存在堆中,通过对象.来访问,可以有很多份
2. 静态变量—属于类的,存在方法区中,通过类名.来访问,有且仅有一份

静态变量

1. static修饰的成员变量时静态变量
2. 当对象中所有数据都一样时,可以使用静态变量(举例:学生类中的学生班级)

静态方法

1. static修饰的方法是静态方法,通过类名.方法名来访问
2. 属于类,存在方法区,有且仅有一份
3. 静态方法没有隐式this传递,所以不能在静态方法中对实例变量进行直接访问
4. 方法的操作与对象无关,只跟参数有关时用静态方法

静态块

1. 由static修饰的块
2. 属于类的,在类被加载期间只自动执行一次
3. 常被用于初始化静态资源(图片,音频,视频)

final

  1. final修饰变量—变量不可再被改变
    1)修饰成员变量—可以声明同时初始化,也可先声明然后在构造方法中初始化
    2)修饰局部变量—只要用之前初始化即可
  2. final修饰方法:方法不能重写
  3. final修饰类:类不能被继承