1、方法重载与方法重写的区别是什么?两者的作用又是什么?
方法重载:同一个类中,方法名相同,参数不同,方法体不同;
方法重写:不同的类中,方法体不同,参数相同,方法名也相同.
(两同两不同)
方法重载的作用: 在有多个同名参数的类中,在调用时通过不同的参数来调用不同的方法.
方法重写的作用: 在继承中,子类可用方法重写,对父类进行扩充或改造.
2、什么是名称遮蔽?什么是虚方法调用?如何绕过名称遮蔽和虚方法调用?
名称遮蔽: 子类中若对父类进行方法重写,出现与父类同名的属性,则会将父类中与其同名的属性遮蔽掉.
需方法调用: 在多态的情况下,父类中声明的变量,只能调用父类的方法,子类中若对父类的方法进行过方法重写,且此变量调用的是子类重写后的方法,这就是需方法调用.
在子类中,如果要调用父类的构造方法,必须使用super(参数);调用,若要调用父类的普通方法则用super.方法名;调用.且子类中对super的调用必须是子类构造方法所做的第一件事.这样便可以绕过名称遮蔽和需方法调用.
3、接口与抽象类的区别是什么?接口中的成员有何特点?java有多重继承么?
接口: 特殊的抽象类.只包含常量和方法的定义,无变量和方法的实现;
抽象类: 用abstract来修饰.抽象类无方法体;不一定有抽象方法,但有抽象方法的一定是抽象类;只能通过子类的实例,以父类的身份出现;非抽象类的子类继承时,必须重写其所有的抽象方法.
区别: 一个具象类只能继承一个抽象类,但能继承多个接口.
接口中的成员都是static & final类型的.
Java中没有多重继承,但可以通过接口,来实现多重继承机制
4、static关键字的意义是什么?
static--类成员中共有的属性.
1,修饰的成员为类成员,不需要实例化,就可以用类名.成员名;调用;
2, static的成员,不管产生多少实例,都指向同一个内存空间;
3,在static的上下文中,不可以直接调用非static成员;
4, static语句块中的成员,只会在第一次初始化中运行一次,一般是对static的成员进行初始化的.
5、final关键字的意义是什么?修饰变量、对象、方法和类时有何不同?
意义: 最终的,不可改变的.
1,修饰变量,为常量,值不可变;
2,修饰对象,值可变,引用不变;
3,修饰方法,方法不可重写.
4,修饰类,无子类,不可以被继承,更不可能被重写.
6、java的异常处理机制是什么?哪些异常必须捕获?获取异常信息的常用方法
异常处理机制: ⑴自定义异常类;⑵声明抛出异常的方法;⑶异常的监控与处理.
在正确设计和实现的程序中出现的异常,即非人为(程序员),而因环境原因引起的异常,必须捕获.
常用方法: ⑴ print(e); //打印出异常名,异常消息;
⑵ e.getMessage(); //只显示异常消息;
⑶ e.printStackTrace(); //显示异常名,异常消息,异常抛出的路径 …….
7、两大集合类的区别是什么?Iterator的作用是什么?
Set: 没有先后顺序,无重复值. List:有先后顺序,有重复值.
Iterator的作用: 对collection中的对象进行遍历.