1、重载与重写
重载:方法重载是让类以统一的方式处理不同类型数据的一种手段。方法重载是指在一个类中,多个方法的方法名相同,但是参数列表不同(参数列表不同是指参数个数、参数类型或者参数顺序不同)。
1)使用重载,必须具有不同的参数列表;
2)不能通过访问权限,返回值类型,抛出异常进行重载。
重写:子类继承父类,子类需要对父类方法进行扩展,增加功能。这种操作方法称为重写。
1)父类的参数列表必须与子类重写的方法的参数列表相同;
2)返回值类型必须相同;
3)子类重写的方法不能比父类拥有更严格的访问权限(如:父public,子private 将报错);
4)重写方法一定不能抛出新的检查异常或者比被重写方法声明更加宽泛的检查异常(如:父IOException,子Exception,报错)
2、接口和抽象类
相似性:都不能被实例化,都可以包含抽象的方法,实现接口或者继承抽象类的普通子类必须实现这些抽象方法。
区别:1)接口只能包含抽象方法,不能为普通方法提供方法实现,抽象类可以;
2)接口只能定义静态常量,不能定义普通成员变量,抽象类两者都可以;
3)接口不能包含构造器,抽象类可以有;
4)一个类最多只能继承一个抽象类父类,但是可以实现多个接口。
3、private的作用范围
除了类自己之外任何人都不可以直接使用。
4、String和StringBuffer的区别
String为字符串常量,一旦创建之后该对象是不可更改的,StringBuffer是字符串变量,对象可变。String对象操作实际是一个不断创建新对象并将旧对象回收的过程,执行速度慢。而StringBuffer进行操作是直接对该对象进行更改。
String:适用于少量的字符串操作的情况;
StringBuffer:适用于多线程下在字符串缓冲区进行大量操作的情况。
5、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?