面向对象的三大特征:封装、继承、多态

  • 什么是类?

    • 类实际上在现实世界是不存在的,是一个抽象的概念。是一个模板。是我们人类大脑进行”总结、思考、抽象“的一个结果。

    • 比如:明星是一个类

  • 什么是对象?

    • 对象是真是存在的个体

    • 比如:刘德华是一个对象、郭富城是 一个对象

  • 在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()

  • 多态在开发中的作用

    • 降低程序的耦合度,提高程序的扩展力

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java+每天进步亿点点

一起学习一起进步一起高薪

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值