面向对象的自我阐述

最近也是打算面试,但是本人阐述能力弱,只能背了一遍在背一边。最后记下来。。。

这些总结是东凑西拼的。。。


什么是类、对象:

类是具有相同特性、行为的对象的抽象。在Java中,类其实是一种数据类型。

类具有属性,它表达了对象状态的抽象,在类中用一组数据结构描述类的属性。

类具有操作,它表达了对象状态的抽象,在类中用一组方法描述类的操作,是修改对象的状态的行为。


类的特征和行为是为了映射出具体的对象,类表示的是一个模板。在现实生活中,任何可以被指定的事务都可以被称为对象,对象不仅可以表达出具体的,还能够表达出抽象的规则、计划、事务。因此类的实例就是对象,对象的抽象就是类。


类本身只是一种概括,不具备哲学上的具现性。所以类不占用储存空间,而对象占用内存空间。



面向对象软件开发有什么优点:

面向对象软件开发是对现实生活的理解和抽象的方法,将软件内部模块化、具体化。通过封装、继承、多态实现程序的:

代码开发模块化、高类聚,低耦合、更容易维护和修改。

提高代码的可重用性、可扩展性。

增强代码的灵活性、扩展性。


封装、继承、多态

封装是实现软件内部模块的基础,封装的目的是在于程序的“高类聚,低耦合”,避免程序的相互依赖性带来变动影响。也可以这样说:封装是隐藏了内部实现的一种机制,在不影响高层模块的基础下修改类的结构。通过访问控制修饰符实现权限的限制,对外部而言是将类的内部细节隐藏、只提供方法对内部的操作,获得行为的数据。

总结四点:

  • 1. 封装能够减少耦合。

  • 2. 类内部的结构可以自由修改。

  • 3. 可以对成员变量进行更精确的控制。

  • 4. 隐藏信息,实现细节。

首先继承是支持创建分层次等级的类。将一个已经存在的类的属性、方法共享给现有类。现有的类可以扩展新的方法,也可以修改方法,完成一些特殊的需求。继承是子类共享父类的数据、实现父子类的关系,分层次等级的一种机制。提高了代码的可重用性和可扩展性。

继承具有以下五点特性:

  • 1. 子类拥有父类非private的属性,方法。

  • 2. 子类可以在父类原有基础上进行扩展。

  • 3. 子类可以修改父类原有的方法(但是在特殊情况下)

  • 4. Java的继承是单继承、多实现(使用extends、interface关键字),但是可以多重继承,例如:A继承B,B继承C。这是Java继承区别于C++继承的一个特性。

  • 5. 但是继承提高了类之间的耦合性


多态:同一种行为、或者描述在不同的对象上,可以有不同的行为或状态,在程序中同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向父类的指针,来调用实现子类中的方法。也就是多态是同一行为具有多种不同表现形式或形态的能力。

多态具有以下六点优势

  • 1. 消除类型之间的耦合关系
  • 2. 可替换性
  • 3. 可扩充性
  • 4. 接口性
  • 5. 灵活性
  • //6. 简化性  还不能理解


接口和抽象类:

在Java面向对象中,所有的对象都是类来映射的,但并不是所有的类都不是用来映射对象的。如果一个类中的方法没有包涵信息来描述对象,那么这就是一个抽象类。抽象类是包含抽象方法,而抽象方法是abstract修饰的没有具体实现方法。


1. 抽象类不能被实例化,但是可以定义成员变量、初始化块、构造方法等...


2. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。


3. 构造方法,类方法(用static修饰的方法)不能声明为抽象方法。


4. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

抽象类可以用于模板设计。


接口(interface),在Java是一个抽象类型并不是类,而是指定的标准,接口是抽象方法和常量的集合。接口本身也不能实例化。

在实现(implements)时,一个类可以实现多个接口,继承又实现时应先继承在实现。一个接口也能继承(extends)接口。

接口是保证了OCP、LSP、DIP、ISP、LOD原则的实现,更容易使程序扩展、解耦、提高系统的稳定性。

在重写接口时要注意三点:

  • 1.类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者在继承接口的抽象类中抛出该强制性异常。
  • 2.类在重写方法时要保持一致的方法名,并且应该保持相同或者相兼容的返回值类型。
  • 3.如果实现接口的类是抽象类,那么就没必要实现该接口的方法。
在接口也可以没有任何定义,可以作为一个标记接口使用。表明一个类属于一种特定类型,用于给对象打个标记,让对象拥有某个、或者某些特权。就像Cloneable接口,实现了这个接口的类可以被复制。
也可以为某些接口定义一个公共的父接口。










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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值