面向对象(二)

面向对象(二)

·请你讲讲abstract class和interface有什么区别?

abstract class 是抽象类,只支持单继承,不支持多继承

interface是接口,支持实现多接口,即所谓的多继承

·请说明Overload和Override的区别,Overloaded的方法是否可以改变返回值的类型?

  • Overload为方法重载,指在一个类中,可以有两个或多个方法名相同,但参数个数或类型不同的方法,叫做方法的重载
  • Override为方法重写,指子类继承父类时,书写了与父类相同的方法名和参数,叫做方法的重写,也叫作方法的覆盖,因为在调用子类方法时,会将父类中的方法“屏蔽”。
  • OverLoaded的方法可以改变返回值类型

·请说明一下final, finally, finalize的区别。

  • final用于声明属性,方法和类,分别表示,属性不可变,方法不可覆盖,类不可继承
  • finally是异常处理时语句结构的一部分,表示总是执行
  • finalize是object类的一个方法,回收垃圾使用此方法

·请说明面向对象的特征有哪些方面

  • 抽象:抽象即为描述一个类,并不是一个具体的实例,这个类代表具有相同行为的一系列事物,较为笼统,抽象包括两个方面:过程抽象,数据抽象
  • 继承:继承即为,一个类可以继承原始类的特性,这一个类叫做派生类(子类),原始类叫做基类(父类),子类可以继承父类的方法和实例变量,并且进行修改和添加新的方法以便使用
  • 封装:即为将过程和数据包围起来,形成一个封装,对于这个封装的访问,只能由已定义的界面。
  • 多态性:指不同类的对象对同一消息作出响应,多态性包括参数化多态性和包含多态性。多态语言更加的灵活,抽象,行为共享,代码共享的优势,很好解决了应用程序函数同名问题。

·请说明Comparable和Comparator接口的作用以及它们的区别。

  • comparable接口只包含compareto()方法,这个方法将两个对象进行排序,如果返回负数,0,正数,则说明,输入的对象小于,等于,大于已存在的对象
  • comparator接口包含equals()方法和compare()方法。
    compare()方法给两个输入参数进行排序,返回值为负数,0,正数,则第一个参数小于,等于,大于第二个参数

equals()方法需要一个对象作为参数,用来决定是否和comparator相等。只有当输入参数是一个comparetor并且排序相同的时候,返回值才会返回true。

·接口和抽象类的区别是什么?

  • 接口中的方法隐含的都是抽象的,抽象类中的方法可以包含抽象和非抽象的
  • 类可以实现多个接口,而只能继承一个抽象类
  • 抽象类可以在不提供接口实例方法实现的情况下实现接口
  • 接口中声明的变量默认都是final的,抽象类可以包含final和非final的变量
  • 接口中成员函数默认为public,抽象类的成员函数可以使public,private,protected
  • 接口是绝对抽象的,不可被实例化,抽象类也不可以被实例化,但是如果有main方法,则可以被调用

·说明java是否支持多继承?

Java不支持多继承,只支持单继承,接口支持多继承,即一个子接口可以有多个父接口

·请你谈谈如何通过反射创建对象?

方法1:通过类对象调用newInstance()方法,例如:String.class.newInstance()

  • 方法2:通过类对象的getConstructor()或getDeclaredConstructor()方法获得构造器(Constructor)对象并调用其newInstance()方法创建对象,例如:String.class.getConstructor(String.class).newInstance(“Hello”);

·请你说明是否可以在static环境中访问非static变量?

static变量在Java中是属于类的,它在所有的实例中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化。如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值