1.用static修饰的成员变量为类变量,反之则是实例变量,类变量可以直接通过类名调用,而实例对象需要创建对象。
2.实例化一个对象除了new之外,还可以用Class,Class cs = Class.forName("java.demo.Rect");Rect rect = (Rect)cs.newInstance();
3.关于&和&&的区别:&运算符有两种用法:(1)按位与(2)逻辑与;&&运算符是短路与运算,即&&左边的为false,右边不运行
4.重载和重写的区别:
首先我们应该区别出来,重载发生在一个类中,重写发生在子类和父类中
方法重载规则:(1)方法名一致,参数列表中参数的顺序、类型、个数不同
(2)重载与方法的返回值无关
(3)可以抛出不同的异常,可以有不同修饰符
方法重写规则:(1)参数列表和返回类型必须完全与被重写方法一致
(2)构造方法、final方法和static方法不能被重写
(3)访问权限不能比父类中被重写的方法访问权限更低
(4)重写方法能抛出任何非强制性异常,但不能抛出新的强制性异常或比被重写方法声明更广泛的强制性异常
5.抽象类和接口的区别:
抽象类:(1)定义构造器
(2)有抽象方法和具体方法
(3)接口中的成员全是public
(4)可以定义成员变量
(5)由抽象方法必须声明为抽象类,但抽象类未必要抽象方法
(6)抽象类可以包括静态方法
(7)一个类只能继承一个抽象类
接 口:(1)接口中不能定义构造器
(2)方法全是抽象方法
(3)抽象类的成员可以是private、protected、默认和public
(4)接口中定义的成员变量都是常量
(5)接口中不能有静态方法
(6)一个类可以实现多个接口