Java经典面试题(一)

1、面向对象的特征有哪些方面?

	抽象:将同类对象的共同特征提取出来构造类。
	继承:基于基类创建新类。
	封装:将数据隐藏起来,对数据的访问只能通过特定接口。
	多态性:不同子类型对象对相同消息作出不同响应。

抽象

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。
父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。
在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口

抽象类的意义可以用三句话来概括:
1.为其他子类提供一个公共的类型
2.封装子类中重复定义的内容 
3.定义抽象方法,子类虽然有不同的实现,但是定义时一致的

继承

在java中规定:一个父类可以有多个子类,但是一个子类只能有一个父类。子类可以通过extends关键字来继承父类。做个比较通俗的比喻,就像一个父亲可以有多个亲孩子,但是一个孩子只能有一个亲生父亲。继承以及重写:子类继承父类是对父类属性和方法的全面继承,同时子类在继承了父类的方法后,可对父类的方法进行重写。

封装

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问

	封装的优点
	1. 良好的封装能够减少耦合。
	2. 类内部的结构可以自由修改。
	3. 可以对成员变量进行更精确的控制。
	4. 隐藏信息,实现细节。

多态

允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用)。主要有以下优点:

1.消除类型之间的耦合关系
2.可替换性:多态对已存在代码具有可替换性
3.可扩充性:增加新的子类不影响已经存在的类结构
4.接口性:多态是超类通过方法签名,向子类提供一个公共接口,由子类来完善或者重写它来实现的。
5.灵活性
6.简化性

实现多态主要有以下三种方式:

  1. 接口实现
  2. 继承父类重写方法
  3. 同一类中进行方法重载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值