类的三大特性包括:封装、继承、多态
二、 继承
继承关键字:extends
**1. 含义:**多个类具有共同的属性(成员变量)与行为(成员方法)的时候,将这些共同的部分抽取出来定义到一个公共的类中,其他及各类可以与这个公共的类形成继承关系,从而在多个类中不需要重 复定义公共部分!这个公共的类就是父类,也称为超类或者基类,其他的类就是子类。子类可以直接访问父类的非私有化成员变量,访问父类的私有化成员变量可以使用super.get()方法。
**简单的说:**继承是类与类的一种关系,比较像集合中的从属于关系。比如说,狗属于动物。就可以看成狗类继承了动物类,那么狗类就是动物类的子类(派生类),动物类就是狗类的父类(基类)。在Java中是单继承的,也就是说一个子类只有一个父类。
2. 继承的特点:
(1) 子类比父类强大
(2)java是单继承,不能进行多继承。但是可以继承多层子类(不建议继承超过3层)
(3)子类继承父类,但是对父类的成员变量是无法直接操作,只能通过父类继承过来的setter和getter方法.
3. 继承的优点:
(1)减少代码量,能很好的提高复用率。
(2)使类与类之间存在继承关系,是实现多态操作的前提。
4. 继承的缺点
继承使得多个类之间具有了子父类关系,当一个类存在多个子类的时候,如果父类发生变化,那么这些子类会跟着一同变化,造成类与类之间的“强耦合”关系!
5.继承注意点
(1)不要仅仅为了获取某个类的某个功能而去继承这个类
(2)类与类之间要存在所属关系,不能够随意继承
6.何时使用继承
(1)具有公共的属性与行为操作的时候,提高复用性
(2)具有is–a的所属关系的类与类之间
7. 结论:
(1)执行构造方法创建对象完成对象的初始化时,先执行父类的构造,完成父类的初始化,再执行本类的初始化工作。
(2)第一次创建Phone(父)类,是直接继承Object,而Object是jdk提供的工具类,自然不会有属性,所以Object类只提供了无参的构造,在执行Phone方法时,无论是无参还是有参都会先执行父类Object的无参构造。
(3)但是对于Phone的子类Mobile,必须也要有自己的构造方法,由于构造执行的特性,对于无参构造,先执行了Phone的无参构造,对于有参构造,则先执行父类Phone的有参,然后才执行本类属性sex的初始化。
(4)构造方法constructor中,无论是否显式还是隐式调用super(),子类在创建对象调用时都会执行super();
(5)显式调用构造是在需要通过父类的带参构造来完成子类的带参构造。例如Mobile类带参构造中显示调用的Super(brand,price,service)
(6)对于父类私有的属性,即使子类继承,但是在test.java中,子类是无法直接访问的,在制定子类的带参构造方法时,只能通过调用父类的带参构造来完成。对于父类非私有的属性,子类对象可以直接调用。
三、 多态
含义:多态指的是对象的多种形态。
多态有两种:引用多态和方法多态。继承是多态的实现基础。
java程序中定义的引用变量所指向的具体类型和通过该引用类型发出的方法在调用时不确定,该引用变量发出的方法到底调用哪个类的实现的方法,必须在程序运行期间才能决定.
1. 多态存在的前提(多态的三要素)
  A.必须有子类和父类,具有继承或实现(继承)
  B.子类必须重写父类的方法(重写)
  C.父类的引用变量指向子类的对象(向上转型)
2. 多态的优点
  A. 可替换性,多态对一存在的代码具有可替代性
  B. 可扩充性:增加的子类不影响已存在的类的特性的运行和操作
  C. 接口性:多态时超类通过方法签名想子类提供了一个公共的接口,由子类来完善或者覆盖它而实现的
  D. 灵活性:在应用中体现了灵活多样的操作,提高了使用的效率
  E. 简化性: 多态简化对应用软件的代码的编写和修改过程,尤其在处理大量的对象的运算和操作时,这个特点尤为突出和重要
3. 多态的缺点
  A. 只能使用父类的引用访问父类的成员
4. 多态中的成员特点:
 成员变量:编译与运行时期都看父类!
 成员方法:编译时期看父类,运行时期看子类。

posted on 2021-07-22 19:11  辰逸1  阅读(64)  评论(0编辑  收藏  举报