一、Java步步为营之类与对象(面试篇)

1、Java语言的优势:

    Java是一种跨平台,适合于分布式计算环境的面向对象的编程语言

    优点:简单性、面向对象、分布式、健壮性、安全性、体系结构中立、可移植性、解释性、高性能、多线程、动态性

2、面向对象的三大特征

    封装、继承、多态

    (1)封装:把对象的属性和行为结合为一个独立的整体,并尽可能隐藏对象的内部细节,只保留有限的接口和外部发生 联系,使得外部不能直接访问对象的内部属性,保证了数据的安全性

    (2)继承:是从已有的类中(称为父类)派生出来新的类(称为子类),新的类能够吸收已有类的属性和行为,继承的好处提高了代码的可用性和维护性

    (3)多态:不同类对同一消息作出相应,即统一消息可以根据发送对象的不同而采取多种不同的行为方式,多态必要条件:要有继承、要有重写、父类引用指向子类对象

3.重载与重写:

    (1)重载和重写都是多态的一种体现,重载是编译期的多态性,重写是运行期的多态性

    (2)重载发生在一个类中,有两个或两个以上的方法有相同的方法名,参数和方法体不同

             重写发生在父子类中,子类要求与父类相同的返回值、参数、方法名,但访问权限要大于父类,异常不能超过父类异常

4.抽象类和接口

        相同点:

    (1)都不能被实例化,能被其他类继承(实现)

    (2)都包含抽象方法,子类都必须实现这些抽象方法

        不同点:

    (1)类:抽象类是对事物的抽象,接口是对行为的抽象

    (2)方法:抽象类中可以包含普通方法,接口中不能有普通方法

    (3)成员:抽象类可以一样普通成员变量,接口中不能有普通成员变量,只有静态变量
    (4)静态:抽象类中可以有静态代码块和静态方法,而接口不能

    (5)子类:一个类只能有一个抽象类,而可以实现多个接口

5.类的访问修饰符

6.构造器能否重写

重写发生在父子类中,而构造器不能被继承,所以就不能被重写

7.String类能否被继承

String是final的,不能被继承

8.是否可以从一个静态方法内部发出对非静态方法的调用

不可以,静态方法只能访问静态成员

9.接口是否可继承接口,抽象是否可实现接口,抽象类是否可继承具体类

接口可以继承接口;抽象类可以实现接口,抽象类可以继承具体类,但前提是具体类有明确的构造函数

10.内部类可以引用它的包装类的成员吗

一个内部类对象可以访问创建它的外部类对象的成员,包括私有成员

猜你喜欢

转载自blog.csdn.net/robot_sh/article/details/82701348
今日推荐