一.java三大特性:

(1)封装

(2)继承

(3)多态

二.什么是封装

将类的细节隐藏起来,仅仅对外界提供访问的接口,提高了代码的安全性。

三.什么是继承

1.继承是类与类之间的关系,其关键字为extends。

2.继承的特点:

(1)子类可以继承父类非私有化的属性和方法

(2)在java中只支持单继承,但可以多层继承

(3)创建子类时,会直接调用父类的构造函数

3.继承的优缺点:

优点:提高了代码的复用率,提高了代码的可维护性,加强了类与类之间的关系,为多态提供了前提。

缺点:类与类之间产生依赖,破坏了封装性,不符合代码编写原则(高内聚,低耦合)

补充:内聚又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。

所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。

耦合:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。

对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。

四.什么是多态

1.在不同时期展现的多种形态

2..多态的前提:继承,方法重写,父类的引用指向子类的实例。

3.多态成员的特点:

时期 编译时期 运行时期
成员变量 只具有父类的成员变量 只具有父类的成员变量
构造方法 / 创建子类时会调用父类的构造函数,对父类进行初始化
成员方法 只具有父类的成员方法 运行结果以子类的方法为准(子类已重写父类的方法)
静态变量/方法 只具有父类的静态变量/方法 运行结果以父类为准

4.多态的转型

(1)向上转型:子类向上转型为父类

(2) 向下转型:把原本多态创建的父类引用转型为原本子类的引用。

Father child=new Child();
        Child c=(Child)child;

5.优缺点

(1)优点:提高了代码的课拓展性

                    方法的形参可以设置成父亲类型,这样一来,不管有多少子类都可以填进去

                    运用在抽象类和接口创造实例

(2)缺点:不能使用子类特有的方法

五.抽象类与接口的区别

1.成员

  抽象类 接口
成员变量 可以是变量也可以常量

默认被public static  finall修饰 只能是常量

构造函数 有构造函数,但不能被实例化 没有构造函数
成员方法 可以是抽象方法,也可以是普通方法,但有抽象方法的一定是抽象类 默认被public abstract修饰只能是抽象方法

 

2.关系

(1)类与类之间只能是继承,而且只能是单继承,但可以多层继承

(2)类与接口之间是实现关系一个类可以实现多个接口,实现与继承不冲突

(3)接口与接口之间可以继承,但不能实现

3.思想

类是本身具有的属性与特征

接口是扩展的功能