Java基础-面向对象

面向对象是一种思想,可以讲复杂问题简单化,让我们从执行者变为了指挥者。面向对象的三大特性为:封装,继承与多态。

封装:将事物封装成一个类,减少耦合,隐藏细节。 保留特定的接口与外界联系,当接口内部发生改变时,不会影响外部调用方。

继承:从一个已知的类中派生出一个新类,新类可以拥有已知类的行为和属性,并且可以通过覆盖、重写来增强已知类的能力。

多态:多态的本质就是一个程序存在多个同名的不同方法,主要通过三种方式来实现:

通过子类对父类对覆盖来实现

通过在一个类中对方法的重载来实现

通过将子类对象作为父类对象使用来实现

 

封装:

将类的属性私有化,只有通过公共的get/set方法才能访问,在get/set方法中我们可以对内部逻辑进行封装处理,外部调用方不必关心我们的处理逻辑。

 

继承:

java中不支持多继承,即一个类只允许有一个父类存在。另外java中的构造函数是不可以继承的,如果构造函数被private修饰,那么就是不明确的构造函数,该类是不可以被其他类继承的

java中类的初始化顺序:

初始化父类中静态成员变量和静态代码块

初始化子类中的静态成员变量和静态代码块

初始化父类中的普通成员变量和代码块,在执行父类的构造方法

初始化子类中的普通成员变量和代码块,在执行子类的构造方法

 

如果父类构造函数是私有的,则初始化子类的时候不可以被执行,所以解释了为什么该类不可以被继承,也就是说其不允许有子类存在。

 

 

子类有哪些特点?

子类拥有父类非private的属性和方法

子类可以添加自己的方法和属性,对父类进行扩展

子类可以重新定义父类的方法,方法的覆盖、重写

 

覆盖(@Override):

覆盖也叫重写,是指子类和父类之间方法的一种关系,比如说父类拥有方法A,子类扩展了方法A并且添加了丰富的功能。

多态:

通过方法的覆盖和重载可以实现多态。

重载:

重载是指一个类中包括父类存在多个同名的不同方法,这些方法的参数个数,顺序、类型不同均可以构成方法的重载。如果仅仅是修饰符、返回值、抛出的异常不同,那么这是2个相同的方法。

向上转型:

子类对象转为父类,父类可以是接口。

公式:

Father f  = new Son();

向下转型:

Son son = (Son)f;

在向上转型的时候我们可以直接转,但是在向下转型的时候我们必须强制类型转换。该父类必须实际指向一个子类对象才可以强制类型向下转换(不知道具体哪个儿子)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值