1.什么是继承?什么是父类,什么是子类?
继承是一种由已有的类创建新类的机制。
继承的类是子类,被继承的类为父类
2.默认的父类是什么?
object类
3.子类可以有多个父类吗?
一个子类只能有一个父类。
4.如果子类和父类不在同一个包中,子类可以继承父类的哪些成员?
可以继承父类中被public,protected 修饰的成员变量和成员方法。(继承的成员变量或方法的访问权限不变)
如果在同一个包中呢?
可以继承父类中的非私有方法和非私有属性。(继承的成员变量或方法的访问权限不变)
5.子类怎样隐藏继承的成员变量?
只要子类中声明的成员变量和父类的成员变量同名时,
子类就隐藏了继承的成员变量。
6.子类对象的成员有哪些?
子类继承父类的成员方法和成员变量,以及子类自己声明的成员变量和成员方法。
7.子类创建对象调用构造方法的顺序?
先调用父类的构造方法然后调用子类的构造方法。
8.怎样操作隐藏的成员变量?
<1>通过super关键字。
<2>子类对象可以调用从父类继承的方法操作隐藏的成员变量。
9.什么是方法重写?重写后和没有重写的方法调用分别是怎样的?重写的方法访问权限的要求是?
方法的重写是:子类中有一个方法和父类的方法的类型一直或是父类方法的类型的子类型,而且方法的名字,参数个数,参数的类型和父类的方法完全相同。
10.关键字super的作用?
通过super关键字可以操作被隐藏的成员变量和方法。
11.关键字final可以修饰什么?分别代表什么意思?
关键字final可以修饰类,成员变量,方法中的局部变量。
12.什么是对象的上转型对象?举例说明。
A a = new B();
A a ;
B b = new B();
a = b;
13.上转型对象可以访问哪些内容?
上转型对象可以访问子类继承或者隐藏的成员变量,也可以调用子类继承的方法或者子类重写的实例方法。
如果上转型对象调用这个实例方法时一定是调用了子类重写的实例方法。
14.什么是多态?
同一个事物的不同表现形式。
15.什么是抽象类?是否可以实例化对象?
用abstract 关键字修饰的类。抽象类不能实例化对象,只能通过子类的继承来实现。
16.有抽象方法的类一定是抽象类吗?抽象类一定要有抽象方法吗?
有抽象方法的类一定是抽象类,但是抽象类不一定要有抽象方法。
17.抽象类与接口的区别?(4点)
抽象类可以有构造函数,接口不可以有构造函数。
抽象类中可以有普通成员变量,接口中没有普通成员变量,只能有常量。
抽象类中的方法可以被static修饰,接口中的方法不可以被static修饰。
抽象类中可以有普通方法和抽象方法,接口中的方法全是抽象方法。
抽象中的方法可以被public,protected等修饰符修饰,接口中的方法全都是public abstract的方法,如果省略修饰符,则默认的也都是public abstract修饰。
一个类只能继承一个抽象类,接口可以被多实现,即一个类只能继承一个类,可以实现多个接口。
18.请画出访问修饰符的访问范围。(自己动手画一个表格) 以及要注意的事项?
| 所有包 | 不同包 | 同一包 | 同类 |
public | 可以 | 可以 | 可以 | 可以 |
protected | 不可以 | 可以 | 可以 | 可以 |
default | 不可以 | 不可以 | 可以 | 可以 |
private | 不可以 | 不可以 | 不可以 | 可以 |
19.原始数据类型对应的包装类?原始数据类型和包装类区别是什么?
基本类型 | 引用类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
java基本数据类型和包装类之间的区别:
1.声明方式不同,基本类型不适用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;
2.存储方式及位置不同,基本类型是直接将变量值存储在堆栈中,而包装类型是将对象放在堆中,然后通过引用来使用;
3.初始值不同,基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null
4.使用方式不同,基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到。