面向对象三大特征概述

面向对象三大特征概述

封装

​ 1、什么是封装?作用是?

​ eg:电视剧、手机,人们不需要关心内部的复杂结构,只需要注重如何操作,对于程序员来说,只需要通过一个简单的入口就可以进行访问,不需要关系代码的复杂实现,此外,类中的一些安全级别较高的数据进行封装后,外部人员不能随意访问,从而做到了保证数据的安全性。

​ 作用:1、保证内部结构的安全 2、屏蔽复杂的实现,暴露简单。

​ 2、如何进行封装

​ 1.对属性进行私有化( 修饰符 private) 只进行本类中数据访问,不向其他类提供数据访问权限。

​ 2. 同时进行添加实例方法 get(),set()方法,用来作为入口,根据实际情况,在set()或者get()方法中添加逻辑语句,从而达到对属性的操作。

继承 extends

​ 1、什么是继承?作用是?

​ eg: 父亲很有钱,那么儿子也会很有钱。

​ 作用:继承可以解决代码复用,子类继承父类。主要作用 : 方法的覆盖和多态机制都离不开继承。

​ 继承的相关特性

	1B类继承A类,则称A类为超类(superclass)、父类、基类,
	B类则称为子类(subclass)、派生类、扩展类。
		class A{}
		class B extends A{}
		我们平时聊天说的比较多的是:父类和子类。
		superclass 父类
		subclass 子类

	2、 java 中的继承只支持单继承,不支持多继承,C++中支持多继承,
	这也是 java 体现简单性的一点,换句话说,java 中不允许这样写代码:
		class B extends A,C{ } 这是错误的。

	3、 虽然 java 中不支持多继承,但有的时候会产生间接继承的效果,
	例如:class C extends Bclass B extends A,也就是说,C 直接继承 B,
	其实 C 还间接继承 A4、 java 中规定,子类继承父类,除构造方法不能继承之外,剩下都可以继承。
	但是私有的属性无法在子类中直接访问。(父类中private修饰的不能在子类中
	直接访问。可以通过间接的手段来访问。)

	5、 java 中的类没有显示的继承任何类,则默认继承 Object类,Object类是 
	java 语言提供的根类(老祖宗类),也就是说,一个对象与生俱来就有 
	Object类型中所有的特征。

	6、 继承也存在一些缺点,例如:CreditAccount 类继承 Account 类会导致它
	们之间的耦合度非常高,Account 类发生改变之后会马上影响到 CreditAccount

多态

​ 1、概念:两种转型,java中允许向上转型和向下转型。

​ 1、向上转型 :子 ----> 父 eg. Cat(子类)–> Animal(父类)

Animal  a = new Cat();  // 底层对象是一只猫,父类引用指向猫。
a.移动方法  // 如果Animal类和Cat类中都有移动方法,Animal类引用的移动方法,则是Cat的移动方法。

​ 2、向下转型 :父 ----> 子 eg. Animal(父类) --> Cat(子类)

Animal b = new Cat();
Cat c = (Cat) b; // 向下转型 也可以叫做强制类型转换,(Cat) 叫做强制类型转换符。父类中没有抓老鼠方法,抓老鼠方法是Cat子类特有的方法,想用抓老鼠方法,就得进行向下转型。
c.抓老鼠方法  

注意:无论是向上转型,还是向下转型 两种类型之间必须有继承关系,否则无法进行互相转型。

​ 2、什么是多态?

​ 多种状态,多种形态。父类型引用指向子类型对象,包括编译阶段和运行阶段,编译阶段进行绑定父类的方法,运行阶段动态绑定子类型对象的方法。

​ 分析:java程序分为编译阶段和运行阶段,编译时看 左边,运行时看 右边,先编译,再进行new对象,只有编译通过的代码才能运行,没有编译,就运行不了。

​ 3、在开发中的作用

​ 降低程序的耦合度,提高程序的扩展力。面向抽象编程,不建议面向具体编程。

​ 软件开发中有条原则:OCP (开闭原则)意思是对扩展开放,对修改关闭,在扩展过程中,修改的越少越好,修改的越多,风险越高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值