面向对象的三大特点
1..封装
(1)什么是封装?
一个类将自己的成员隐藏起来,不让其他类访问的过程。
说明:封装主要指的是属性的封装。
(2)怎样进行封装?
将成员设为私有的private。
比如:私有的属性,私有的方法,私有的构造器。
属性封装:
将属性设为私有的private,提供共有的getter和setter方法来间接访问属性。
(3)有什么好处?
属性的封装,能够让属性中的数据保持完整性。
数据完整性:数据符合程序的要求。
好比:年龄应在0到130之间;电话号码应该是11位----
2..继承
(1)什么是继承?
一个现有的类派生出一个新类的过程。
现有的类叫父类;
新类叫子类;
(2)怎么继承?
定义子类时,在子类名后写:public class子类名extends父类名{}
(3)有什么好处?
在子类中,无需定义重复的代码。
(4)继承的特点
a.一个子类只能继承一个父类,我们叫单继承。
b.子类只能继承父类非私有的属性和方法,不能继承构造器。
c.子类可以扩展自己新的属性和方法
d.子类可以对继承的方法进行重写
(5)方法的重写
在子类中,对继承的父类的方法进行重新定义的过程。
语法要求:方法名相同 参数列表相同 返回值类型相同 修饰符相同
3.多态
(1)引用类型转换
引用类型转换
(1)向上转型:系统自动将子对象由子类型转为父类型。
举例:
父类P子类C1子类C2
new C1();//系统先创建父对象,在创建子对象,最后返回子对象。
C1 c1=new C1();
P pc=new C1();
子对象的类型:
如果子对象是子类型,那么该对象可以访问子类中的属性和方法,以及继承的父类中的属性和方法;
如果子对象是父类型,那么该对象只能访问继承的父类中的属性和方法,如果方法被子类重写,访问重写之后的方法。
(2)向下转型:程序员写代码将子对象由父类型转为子类型。
C1 c11=(C1)pc;
说明:对象是一种数据;
对象是一种引用类型的数据;
引用类型的数据全是对象,对象又分为数组类型,类类型,接口类型。
子对象可以是所属的子类类型,也可以是父类类型。
a.向上转型:子对象 由 子类型 自动转为 父类型
子对象类型转为了父类型,那么子对象只能访问从父类中继承的属性和方法,如果方法被子类重写,访问重写之后的方法。
b.向下转型:子对象 由 父类型 强制转为 子类型
子对象类型转为了子类型,那么子对象可以访问子类中扩展的属性和方法,以及从父类中继承的属性和方法,如果方法被子类重写,访问重写之后的方法。
启发:子对象所属的类型不同,决定了子对象能够访问的属性和方法不同。
(2)什么是多态?
生活中:同一个事物的多种形态
java中:同一个方法根据传入的对象的不同,执行结果不同。
(3)多态的前提
a.继承
b.方法的重写
c.向上转型
(4)多态有什么好处?
减少代码量,降低程序的耦合度。
(5)总结:
面向对象的特点有三个,分别是:封装,继承,多态