方法重载的规则:
1、必须发生在同一个类的下面
2、必须保证方法名字相同
3、参数列表不同
参数的类型不同
参数的个数不同
参数的顺序不同
4、返回值:和返回值无关
5、修饰符:和修饰符无关
6、抛出异常:无关
例子:
public void add(int i);
public void add(double d);
public void add(long l);
poublc void add(String s);
方法重写(也叫做覆写):
1、一定发生在继承关系中
2、子类中重写父类中存在的方法
3、规则:
方法名称必须相同
参数列表必须相同
子类返回值类型可以比父类小,至少要相同
子类抛出的异常比父类的小,至少要相同
子类的权限访问必须比父类的大,至少要相同
例子:
如果父类返回值是默认的,子类重写返回值不可以为private,可以与父类相同也可以定义为public;
总结:重写要满足 "在子父类中,两同两小一大""
static修饰符:(静态)
修饰变量:静态变量,被该类的所有对象共享,只存在一个
成员变量:只能修饰这个
局部变量:不可以修饰局部变量
修饰方法:静态方法
静态方法中不能够出现非静态的成员变量
静态方法的调用方式:类名.方法名();不用创建对象,因为依赖与类存在
非静态方法中可以使用静态变量
非静态方法的调用方式:对象名.方法名();需要创建对象,因为依赖与对象存在
修饰代码块:静态代码块 {}
静态代码块随着程序的运行,只会执行一次
非静态的代码块会随着对象的创建而执行,有几个对象,则执行几次
注意:如果同时出现多个静态代码块和普通代码块,则静态代码块优先按照声明的顺序进行,只执行一次,
然后在按照普通代码块的声明顺序开始进行
总结:静态成员依赖于类的存在
非静态(实例)成员是依赖于对象的存在
final修饰符:(最终的、最后的、不可改变的)
变量:
final变量能被显示的初始化并且只能初始一次,被声明为final的对象的引用不能指向不同的对象,但是final对象里的数据可以被改变 也就是说final对象的引用不能改变,但是里面的值可以改变; final修饰变量相当于一个常量,只可以赋值一次;
静态变量:必须在声明的时候显性的赋值
实例变量:可以在声明阶段先声明,可以在构造器中进行初始化,如果有多个构造器,则每一个构造器中都要对该实例变量进行初始化
方法:
被final修饰的方法不可以被子类重写
类:
final修饰类不可以被继承,说明该类功能已经很完整,不允许再扩展
String
StringBuffer
StringBuilder
append
代码块:不能修饰代码块
构造器:不能修饰构造器