java基础
题解:A、abstract类不能与final,static使用。final修饰方法,子类可以调用,但不能覆盖。
B、最好不要有private因为私有和抽象放在一起,子类如果想重写父类的私有方法根本继承不过来,也就无法重写
C、抽象类中可以有非抽象方法
D、抽象类中可以都是非抽象的,但是抽象方法一定要在类和接口中
题解:1、子类构造函数调用父类构造函数用super
2、子类重写父类方法后,若想调用父类中被重写的方法,用super
3、未被重写的方法可以直接调用。
题解:首先 我们要知道 ==
这个比较符号
==
可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。==
和!=
比较的是地址 指第一个new()出来的地址,所以因为两次new() 分出的内存也不同
题解:public void add(Byte b){ b=b++; } 这里涉及java的自动装包/自动拆包(AutoBoxing/UnBoxing) Byte的首字母为大写,是类,看似是引用传递,但是在add函数内实现++操作,会自动拆包成byte值传递类型,所以add函数还是不能实现自增功能。也就是说add函数只是个摆设,没有任何作用。 Byte类型值大小为-128~127之间。 add(++a);这里++a会越界,a的值变为-128 add(b); 前面说了,add不起任何作用,b还是127
题解:count一直都是0
题解:byte类型的变量在做运算时被会转换为int类型的值,故A、B左为byte,右为int,会报错;而C、D语句中用的是a+=b的语句,此语句会将被赋值的变量自动强制转化为相对应的类型。