重载:在同一个类中,存在多个方法名相同,参数列表不同的方法
重写:在具有继承关系的两个类中,子类对父类中的某个方法的方法体进行重新实现
区别:
重载在编译期绑定方法,重写在运行期绑定方法
继承中不继承的成员:
构造方法
私有成员
static成员
访问控制修饰符:
如果修饰外部类,只能使用public和默认的
修饰内部类,4种都可以使用
修饰类的成员:4种都可以
static键字
修饰方法:
- 通过类名直接调用
a) 一个类中static可以直接调用static的原因是省略的类名
b) static资源可以通过对象来访问,但是不推荐,推荐使用类名来访问 - static方法中不能使用this关键字,super关键字
a) 调用一个非static的方法,除了传递常规的参数外,其实还会隐式的传递调用当前方法
的引用的对象过去。 - static方法不能调用非static方法原因
a) static方法体中没有this关键字
修饰代码块:
属于类的代码块,在类加载期间执行的代码块,只执行一次,可以用来在程序中加载静态资源。
应用场景,静态资源:内容确定之后不变,要供程序中的多个对象使用的资源
static修饰三类成员:
成员变量,代码块:在类加载时期完成变量或代码块的初始化
方法:得调用才执行
final关键字
final无论修饰以下三种中那一种,它的作用都是最终的意思。
修饰变量:
可以修饰成员变量,也可以修饰局部变量
如果修饰成员变量,在声明的同时必须初始化,如果修饰局部变量,可以先声明,后初始化。
变量的值一旦确定,不可以被修改
修饰方法:作用:表示方法是不可变的。体现在:方法不可以被重写
修饰类:作用:表示此类时不可变的。体现在:类不可以被继承
static final 修饰成员变量 则表示常量
static final int A = 100;
常量命名规则:
- 常量名需要全部大写,如果是由一个单词组成,所有字母大写,如果由多个单词组成,所有字母大写,多个单词之间用_隔开。
- 通常常量的访问控制修饰符都是public
作用:在程序中经常会出现一些值固定不变的量,此时就需要将他们定义成常量。
注意点:static final常量会在编译期被替换
抽象类和接口的比较:
1.抽象类中有构造器,而接口中没有,但是两者都不能实例化
2.抽象类中可以有变量,可以有常量,而接口中只能有常量
3.抽象类中可以有抽象方法,也可以有普通方法,而接口中只能有抽象方法
4.抽象类和接口都可以用于继承,但是抽象类的继承是单继承,接口的继承是多继承