Java面试题-Java基础(⑨)-抽象
1.向上转型的表现形式,向上转型可以调用哪些方法?
- 父类作为形参,实参为子类类型
- 父类作为声明返回值,实际返回值为子类类型
- 父类类型的数组、集合,其元素为子类类型
向上转型可以访问子类继承父类或者重写父类的方法
2.描述向下转型,向下转型可以调用哪些方法?
将指向子类对象的父类类型的引用,强制转换为子类类型
向下转型可以访问子类独有的方法
3.==和equals的区别
==比较基本数据类型,比较值
==比较引用数据类型,比较地址
equals本身也比较地址,但是我们可以重写自定义比较规则
4.描述构造方法重载
同一个类中的构造方法,参数列表不同
5.static关键字可以修饰哪些内容,分别有什么特点
修饰属性: 静态属性,属于整个类,不属于任何对象,可以被此类的所有对象共享,内存中只存在一份,随着类的加载而初始化
修饰方法: 本类中直接访问,其他类通过类名加点访问
修饰代码块:随着类的加载而执行,多个静态代码块按照书写顺序执行,因为类只加载次,所以静态代码块也只执行一次。
6.instanceof关键字的用法
对象名 instanceof 类名
表示判断左侧的对象是否属于右侧的类型
7.抽象类的特点
1.抽象方法没有方法体,必须存在于抽象类中,均使用abstract修饰
2.抽象类不能直接new对象,必须通过new子类的方式创建对象
3.子类必须重写父类的所有抽象方法,除非子类也是抽象类
4.抽象类中可以书写普通属性、方法、构造方法、静态方法
8.值传递和引用传递的区别
基本数据类型传参属于值传递,传递是值的拷贝,值的副本,在方法体内对值的修改不会影响原变量
引用数据类型属于引用传递,传递的是一个地址,在方法体内根据地址对内容的修改会影响原变量
String是特殊的引用数据类型
9.分别说明方法重载和方法重写的特点
重载:同一个类,或者父子类之间的方法,名称相同,参数列表不同
重写: 子类重写父类方法,名称相同,参数列表相同,返回值相同或者是其子类,访问权限不能严于父类,实例方法不能被重写为静态方法,静态方法可以被继承,不能被重写不能声明、抛出比父类更多的异常