什么是构造方法?构造方法有那些特点?
构造方法,是一种特殊的方法,它是一个与类同名的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
特点:
- 构造方法的方法名与类名一致
- 构造方法没有返回值
- 创建对象时,通过new关键字来调用构造方法
重载和重写的区别?
名称 | 重载(overload) | 重写(override) |
---|---|---|
范围 | 同一类中 | 父类和子类 |
方法名 | 必须相同 | 必须相同 |
参数列表 |
类型、个数、顺序 至少有一个不同 |
必须与父类相同 |
返回类型 | 可以不同 | 子类重写的方法,返回类型和父类一样或者是父类的子类
|
修饰符 | 可以不同 | 子类方法不能缩小父类方法的访问范围
|
抽象类和接口的区别?
接口抽象类不同点
接口的特点:
- 接口中只包括虚方法的定义,只有声明定义,没有函数实现 (抽象类可以有实现)
- 接口类中可以包括属性、事件、索引器等,但不能包括字段 (抽象类可以有字段)
- 接口类属于多继承 (抽象类单继承,符合类的特点)
- 接口可以支持回调 (抽象类不支持回调)
- 继承了接口的类必须全部实现接口的方法
抽象类的特点:
- 抽象类不能被实例化,也不能被密封
- 抽象类中的方法,在派生类中要有实现,没有实现的话,这个类就得是抽象类,在由这个类的派生类实现,方法得标记为抽象方法!
- 派生类中实现 基类的抽象方法,必须使用override 修饰符
接口抽象类相同点
- 不能实例化,由派生类来实现
- 都需要子类实现父类的方法
static关键字用法
static关键字修饰类
在Java中,static一般用来修饰成员变量或者函数。但有一种特殊用法是用static修饰内部类(普通类是不允许声明为静态的,只有内部类才可以),被static修饰的内部类可以直接作为一个普通类来使用,而不需实例一个外部类。
static关键字修饰方法
static修饰的方法被称之为静态方法,也叫类方法
加Static修饰的方法与不加Static修饰的方法的区别
- 加static的方法,可以通过类名直接访问,也可以通过对象名访问;加了static的方法,不能再内部写this,因为直接用类名.方法的时候,没有当前对象
- 而不加static只能通过对象名访问加了static的方法,不能在内部访问非static的属性和行为,因为在静态方法的内部无法确定非static的内容属于那个对象,它是通过类名调用
static关键字修饰变量
被static修饰的成员变量属于类,不属于某个对象(也就是说:多个对象访问或修改static修饰的成员变量时,其中一个对象将static成员变量进行了修改,其他的对象的static成员变量值跟着改变,即多个对象共享同一个static成员变量 )
被static修饰的成员,可以通过类名直接访问
在静态方法中,不能访问非静态的内容(变量),不能使用this/super;非静态中,可以访问静态中的变量
static修饰代码块
静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。
静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new一次就执行一次。非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。
final关键字用法
用来修饰一个类;
当 final 关键字用来修饰一个类的时候,表明这个类不能有任何的子类,也就是说这个类不能被继承。
final类中的所有成员方法都会被隐式地指定为final方法,也就是说一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写
用来修饰一个方法;
当 final 关键字用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写。
用来修饰一个局部变量;
一旦使用 final 用来修饰局部变量,那么这个变量就不能进行更改「一次赋值,终生不变」。
- 对于基本类型来说,不可变说的是变量当中的数据不可改变;
- 对于引用类型来说,不可变说的是变量当中的地址值不可改变。
用来修饰一个成员变量
对于成员变量来说,如果使用 final 关键字修饰,那么这个变量也照样是不可变。
- 由于成员变量具有默认值,所以用了 final 之后必须手动赋值,不会再给默认值了;
- 对于 final 的成员变量,要么使用直接赋值,要么通过构造方法赋值,二者选其一;
- 必须保证类当中所有重载的构造方法都最终会对 final 的成员变量进行赋值。
什么是面型对象 ?
是一种编程思想,它的核心概念是“对象”。“对象”是指具有特定属性和行为的实体,能够接收消息、处理消息并返回结果。在面向对象的编程语言中,所有的程序都是由多个对象组成的。文章来源:https://www.toymoban.com/news/detail-836175.html
面向对象的编程语言具有三个基本概念:封装、继承和多态。文章来源地址https://www.toymoban.com/news/detail-836175.html
- 封装:即隐藏对象的属性和实现细节
- 继承:通过子类继承父类,提高代码的扩展性
- 多态:提高代码的灵活性,降低耦合性
到了这里,关于Java常见面试题---面向对象篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!