Day6练习

1.Java支持的数据类型有哪些?什么是自动拆装箱?

答:

Java支持的数据类型有:byte(字节),short(短整型),int(整型),long(长整型),float(浮点型),double(双精度),char(字符型),boolean(布尔型)

自动拆装箱:

基本数据类型的自动装箱、拆箱目的是将原始类型值自动的装换成对应的对象。自动装箱与拆箱的机制可以让我们在Java的变量赋值或是方法调用等情况下使用原始类型或者对象类型更加简单直接。

自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱。

因为这里的装箱和拆箱是自动进行的非人为转换,所以就称作为自动装箱和拆箱。原始类型byte,short,char,int,long,float,double和boolean对应的封装类为Byte,Short,Character,Integer,Long,Float,Double,Boolean。

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

答:

抽象类里面可以有非抽象方法,但是接口里只能有抽象方法。

抽象类用于要创建一个体现某些基本行为的类,并为该类声明方法但不能在该类中实现该类的情况。

接口中所有方法都是抽象的,多继承性可以通过这样的接口而获得。

接口只可以定义static final成员变量。

抽象类成员可以具有访问级别而接口的成员全部public级别。

抽象类可以继承接口而接口不能继承抽象类。

3.接口是否可继承接口?接口类是否实现接口?接口类是否可继承实体

答:

接口可以继承接口。

接口类可以实现接口。

接口类可继承有构造函数的实体。

面试常考题

1、Java抽象类可以有构造函数吗?

答: 可以有。

2、Java抽象类可以实现接口吗?它们需要实现所有的方法吗?

答:可以实现,可以不实现接口所有方法,由抽象类的子类来实现。

3、Java抽象类可以是final的吗?

答:Java抽象类不可以被 final修饰抽象类需要被继承才能使用,而被final修饰的类无法被继承。

4、Java抽象类可以有static方法吗?

答:Java抽象类中不能有静态的抽象方法。抽象类是不能实例化的,即不能被分配内存;而static修饰的方法在类实例化之前就已经别分配了内存,这样一来矛盾就出现了:抽象类不能被分配内存,而static方法必须被分配内存。定义抽象方法的目的是重写此方法,但如果定义成静态方法就不能被重写。

5、可以创建抽象类的实例吗?

答:抽象类不可以直接实例化,只可以用来继承。

6、抽象类必须有抽象方法吗?

答:抽象类可以没有抽象方法。

7、Java抽象类和接口有何不同?

8、何时选用抽象类而不是接口?

答:

接口和抽象类都能描述一般性的公有特征。一般来说,强是关系(strong is-a relationship)清晰地描述了父子关系,应该用类模拟,比如苹果是一种水果;而弱是关系(weak is-a relationship)是指对象具有某种属性,适合用接口模拟,比如苹果是可以吃的。

由于子类只能扩展一个父类,而能实现多个接口,所以接口比抽象类更灵活。但是接口不能包括具体的方法,而抽象类可以,要将两种好处结合起来,可以创建一个接口和一个实现该接口的抽象类(便利类),然后根据情况决定使用哪个。
接口不变性是指不改变接口的使用方法,但是可以改变接口的具体实现方法,而接口的实现对用户是透明的,用户不需要关心接口的实现,只要知道如何使用接口就行了,所以接口不变性为用户提供了便利。

程序题

写一个形状接口Shape  有两个方法一个求周长,一个求面积  

写一个长方形类Rect继承于形状类  增加属性长和宽  分别去覆盖求周长和求面积的方法   

写一个圆形类Circle  增加属性半径  分别去覆盖求周长和求面积的方法  写一个测试类,在测试类中分别创建不同的对象放入进一个Shape  数组中进行,循环数组中的元素求周长和面积 

答:略  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值