一、 多态:
1.概念:
在同一个时刻,体现出来的不同状态。
在同一个时刻,体现出来的不同状态。
2. 前提:
1)必须有继承关系
子类继承父类,存在一些特点;
2)必须有方法重写
子类继承父类,方法重写的目的,举例:动物吃的方法,每一个具体动物吃的东西不一样,所有必须要方法覆盖;
3)就是必须有父类的引用指向子类对象 (向上转型)
父类名 fu = new 子类名() ;
子类继承父类,存在一些特点;
2)必须有方法重写
子类继承父类,方法重写的目的,举例:动物吃的方法,每一个具体动物吃的东西不一样,所有必须要方法覆盖;
3)就是必须有父类的引用指向子类对象 (向上转型)
父类名 fu = new 子类名() ;
3.成员访问特点:
1)成员变量: 编译看左,运行看左...
2)成员方法(非静态): 编译看左,运行看右(存在方法重写)
3)构造方法:构造方法(无论子类,还是父类),都是对对象进行初始化
4)静态成员方法: 编译看左,运行看左(静态跟类有关系,算不上方法重写)
2)成员方法(非静态): 编译看左,运行看右(存在方法重写)
3)构造方法:构造方法(无论子类,还是父类),都是对对象进行初始化
4)静态成员方法: 编译看左,运行看左(静态跟类有关系,算不上方法重写)
4.优点及其弊端:
1)优点:
可以提供代码的复用性:继承保证;
可以提高的代码的扩展性:由多态保证... (父类的引用指向子类对象)。
可以提高的代码的扩展性:由多态保证... (父类的引用指向子类对象)。
2) 弊端:
父类引用指向子类对象;
通过父类的引用调用子类特有功能,不能调用....
通过父类的引用调用子类特有功能,不能调用....
不能访问子类特有功能。
二、继承:
1.概念:
将多个类抽取位一个独立的类,让独立的类和多个类产生继承关系。
2.好处:
1)提供了代码复用性,解决了代码的臃肿;
2)它是多态的前提(多态的前提是必须有继承关系)。
2)它是多态的前提(多态的前提是必须有继承关系)。
3.特点:
子类继承父类,是继承了父类所有的东西(成员变量,成员方法,包括私有),但是子类不能使用私有的东西,只能通过父类的公共的访问间接的让子类访问它.
在Java中,继承只支持单继承,不支持多继承(子类名 extends 父类名1,父类名2,...)
但是,Java是可以支持多层继承...
但是,Java是可以支持多层继承...
4.用法:
父类中被private修饰的,是可以继承,但是只能间接的去访问私有的..
父类被private修饰 成员属性,子类不不能直接访问的。
父类被private修饰 成员属性,子类不不能直接访问的。

三、抽象类:
1.概念:
Java中,如果一个类中有一个方法声明(抽象方法)抽象功能,那么这个类定义为抽象类。
2.关于抽象类:
1)如果一个类中有抽象方法,那么这个类是一定是一个抽象类
2)抽象类必须有抽象方法吗? 抽象类中不一定都是抽象方法
抽象类的子类
1)如果子类是抽象类,没有意义,因为都不能实例化,对象如何创建
2)子类具体类,那么子类必须实现父类中的抽象功能.
2)抽象类必须有抽象方法吗? 抽象类中不一定都是抽象方法
抽象类的子类
1)如果子类是抽象类,没有意义,因为都不能实例化,对象如何创建
2)子类具体类,那么子类必须实现父类中的抽象功能.
3.成员特点:
成员变量:
可以是变量,也是一个常量
构造方法:
可以是变量,也是一个常量
构造方法:
可以有无参,可以有有参,作用:给对象进行初始化的.
成员方法:
成员方法:
可以有抽象方法,还可以有非抽象方法...
无参:

有参:

抽象方法:

四、接口:
1. 概念:
体现的是事务的扩展性功能(额外动作,后天经过学习等等)。
2.成员特点:
成员变量:是一个常量,不能更改,并且默认的修饰符
public static final:
构造方法:接口不存在构造方法
成员方法:都是抽象方法
默认的修饰符:public abstract
public static final:
构造方法:接口不存在构造方法
成员方法:都是抽象方法
默认的修饰符:public abstract
3.
