重载和重写问题:
重载:方法名相同,参数列表不同(参数类型,数量)【两个参数类型顺序不一样也算】
重写:重写父类的方法,参数列表相同,与返回类型无关
final关键字:
final可以用来修饰类,方法,变量,参数:
1.修饰类:final修饰的类不能被继承
final class FinalClass{
//类的成员变量和方法
}
class a extends FinalClass{}//错误,不可被继承
2.修饰方法:final修饰的方法不能被子类重写
class FinalClass{
public final void A(){}
}
class B extends FinalClass{
public void A(){}//无法执行
}
3.修饰变量:一:修饰变量 不可被修改
二:修饰对象 同样不可被修改
final int num=5;
//无法更改
// num=10
final StringBuilder a=new StringBuilder("hello");
a.append("nihao")//无法更改
4.修饰参数:
被final修饰的参数在方法内部不能被修改。这可以防止在方法中不小心修改了传入的参数值。
public void Change(final int value){
//不可修改 value=10
}
多态:
允许不同类的对象对同一消息作出响应,强调同一个行为在不同对象的不同反应,通过方法重写和接口来实现
接口和抽象类:
接口方法不能产生实例,没有方法体
接口不能定义参数,接口本身不能“调用属性”,接口只有常量(public static final),没有实例字段
抽象类被abstract修饰,抽象类中可以有实体方法,也可以有抽象方法
抽象类不能产生实例,子类继承了抽象类,必须实现抽象类的所有抽象方法,可以定义属性(私有的也可以)
抽象类和普通类
static:
1.修饰变量:static修饰变量,可以直接访问,直接通过类名.对象名直接调用
2.修饰方法:static修饰方法,静态方法无需创建对象即可被调用,不能直接访问类中的非静态方法(变量/方法)。无需依赖创建对象即可被调用。
3.修饰代码块:静态代码块在类加载时被调用时运行一次
4.修饰内部类:不能直接访问外部类的非静态成员(变量/方法)
hashmap和hashtable的区别:
hashmap线程不安全,访问效率高。key,value可以存在null,底层是数组加链表,要扩容的时候,链表转换为红黑树。null的key只有一个,null的value可以有多个。
hashtable线程安全,访问效率低。key,value不可以为null,底层是数组加链表。
1996

被折叠的 条评论
为什么被折叠?



