Java 面向对象的三大特征
1、封装
封装是指隐藏对象的属性和实现细节,仅对外提供公共public访问方式。
封装的好处:
1.隐藏实现细节,提供公共的访问方式
2.提高了代码的复用性和安全性
原则:
1.封装原则将不需要对外提供的内容都隐藏起来
2.把属性隐藏,提供公共方法对其访问
2、继承
继承:让类与类之间产生关系,子父类关系。
继承的好处:
1.提高了代码的复用性
2.提高了代码的维护性
3.让类与类之间产生了关系,继承是多态的前提
继承的弊端:
1.类的耦合性增强了
2.开发的原则:高内聚(就是自己完成某件事情的能力),低耦合(类与类的关系)
继承的特点:
1.Java只支持单继承,不支持多继承。(一个儿子只能有一个爹)
2.有些语言是支持多继承,多继承的格式:extends 类1,类2,…
3.Java支持多层继承(继承体系)
3、多态
多态是事物存在的多种形态。
Java中存在多态的三个前提条件:
1.要有继承关系
2.要有方法重写
3.要有父类引用指向子类对象
多态中向上转型和向下转型
1.向上转型:父类指向子类对象 Person p = new SuperMan();
2.向下转型:子类指向父类对象 SuperMan sm = (SuperMan)p;
多态的好处:
1.提高了代码的维护性(继承保证)(在父类改一个属性不用每个子类都改属性)
2.提高代码的扩展性(多态保证)(方法中使用父类为参数,来实现方法或者属性的调用)
多态的弊端:
1.不能使用子类的特有属性和行为
多态注意事项:
1.开发中创建对象的时候用父类引用指向子类对象比较常用
2.当作参数时候使用多态最好,因为扩展性强
Java 构造方法
作用:给对象的数据(属性)进行初始化赋值
格式特点:
(1)方法名与类名相同(大小也要与类名一致)
(2)没有返回值类型,连void都没有
(3)没有具体的返回值return
构方法分为【有参构造方法】和【无参构造方法】两种
构造方法的重载:
(1)方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表
Java 方法重写
方法重写是指子父类出现了一模一样的方法
重写这个概念只是存在子类和父类中
方法重写的应用
当子类需要父类的功能,而子类有自己特有内容时,可以重写父类中的方法。这样,即沿袭了父类的功能,又定义了子类特有的内容
Java 抽象类
抽象类:可以理解为看不懂的类。
特点:
1.抽象类和抽象方法必须用abstract关键字修饰
2.抽象类不一定有抽象方法,有抽象方法的类一定是个抽象类或者是接口
3.抽象类不能实例化,是由具体的子类实例化。其实这也是多态的一种,抽象类多态
4.抽象类的子类
(1)要么是抽象类
(2)要么重写抽象类中的所有抽象方法