-
什么是类?
-
类实际上在现实世界是不存在的,是一个抽象的概念。是一个模板。是我们人类大脑进行”总结、思考、抽象“的一个结果。
-
比如:明星是一个类
-
-
什么是对象?
-
对象是真是存在的个体
-
比如:刘德华是一个对象、郭富城是 一个对象
-
-
在java语言中,要想得到”对象“,必须先定义”类“,”对象“是通过”类“这个模板创造出来的。
-
类就是一个模板:类中描述的是所有对象的”共同特征信息“,对象就是通过类创建出的个体
-
-
类 --- 》{实例化} --- 》对象 (实例)
-
对象 ---》 {抽象} -- 》类
-
什么是构造方法,有什么用?
-
构造方法是一个比较特殊的方法,通过构造方法可以完成对象的创建,以及实例变量的初始化。换句话说:构造方法是用来创建对象的,并且同时给对象的属性赋值。(注意:实例变量没有手动赋值的时候,系统会赋默认值)
-
当一个类没有提供任何的构造方法,但是系统会默认提供一个无参数的构造方法。(叫做缺省构造器)
-
使用new运算符类调用构造方法
-
构造方法名和类名必须一直
-
构造方法不需要指定返回值类型,也不能写void
-
构造方法支持方法重载的
-
-
什么是封装?
-
现实世界封装的粒子:手机,电视机,笔记本电脑,这些都是外部一个坚硬的外壳儿。把里面的部件给封装起来,保证内部是安全的。另外封装起来之后,对于我们使用者来说,是看不见里面的复杂结构的,只需要知道是怎么操作,怎么使用的。
-
-
封装的两个作用:
-
保证内部结构的安全
-
屏蔽复杂,暴露简单
-
-
在代码级别,封装有什么用?
-
一个类体当中的数据,假设封装之后,对于代码的调试人员来说,不需要关系代码的复杂实现,只需要通过一个简单的入口就可以访问了。另外,类体中安全级别较高的数据封装起来,外部人员就不能随意访问,来保证数据的安全。
-
-
什么是继承?有什么用?
-
继承:在现实世界中也是存在的。例如:父亲很有钱,儿子可以继承父亲的产业,也可以有钱
-
继承的基本作用:子类继承父类,代码可以得到复用。(这个不是重要的作用,是基本作用)
-
主要(重要作用):因为有了继承关系,才有了后期的方法覆盖和多态机制。
-
-
继承的相关特性:
-
B类继承A类,则称A类为超类(superclass)、父类、基类,B类称为子类(subclass)、派生类、扩展类
-
Java中的继承只支持单继承,不支持多继承,c++支持多继承。Java不允许这样的代码:class B extends A,c{}
-
虽然Java不支持多继承,但是有时会产生间接继承的效果。例如:class C extends B,class B extends A.也就是说C直接继承B,其实C还简介继承了A
-
Java中规定,子类继承父类,除构造方法和被private修饰的数据不能被继承外,剩下的都可以继承。
-
Java中的类没有现实的继承任何类,则默认继承Object类,Object类是Java语言提供的跟类(老祖宗类),
-
继承也存在一些缺点。耦合度非常高,B类继承A类,A类变化之后马上会影响B类
-
-
向上转型概念:子 -- > 父(upcasting) 又被称为自动类型转换:Animal a = new Cat();
-
向下转型概念:父 -- >子(downcasting) 又被称为强制类型转换:Cat c = (Cat)a: 需要加强制类型转换符
-
向下转型有风险:容易出现ClassCastException(类型转换异常):规避这个风险用instanceof运算符判断
-
不管是向上转型还是向下转型,他们之间必须要有继承关系,这样编译器就不会报错
-
-
什么是多态
-
多种形态,多种状态,编译和运行有两个不同的状态
-
父类型的引用指向子类型对象
-
编译器叫做静态绑定
-
运行期叫做动态绑定
-
例如: Animal a = new Cat()
-
-
多态在开发中的作用
-
降低程序的耦合度,提高程序的扩展力
-