面向对象程序设计特点

一、类及类成员的访问修饰符和其他修饰符

       java通过访问修饰符来控制类的属性和方法的访问权限以及其他功能,一般放在语句的最前端。java的修饰符分为访问修饰符和非访问修饰符。其中访问修饰符也叫访问控制符,是指能够控制类、成员变量、方法的使用权限的关键字。访问控制符一共有四种:

(1)public(公共的):公共的访问权限,所有类都能访问。

(2)default(缺省的):在当前包内可访问。

(3)protected:在当前类和它的子类中可访问。

(4)private:在当前类中可访问。

二、封装

        概念:为了“隐藏细节”和“数据安全”利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系。也就是说用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行。

       封装的优点:便于使用、将变化隔离、提高重用性、提高安全性。

       封装的缺点:将变量等使用private修饰,或者封装进方法内,使其不能直接访问,增加了访问步骤与难度。

三、继承

继承关键字:extends

感念:多个类具有共同的属性(成员变量)与行为(成员方法)的时候,将这些共同的部分抽取出来定义到一个公共的类中,其他及各类可以与这个公共的类形成继承关系,从
而在多个类中不需要重复定义公共部分!这个公共的类就是父类,也称为超类或者基类,其他的类就是子类。
简单的说:继承是类与类的一种关系,比较像集合中的从属于关系。比如说,狗属于动物就可以看成狗类继承了动物类,那么狗类就是动物类的子类(派生类),动物类就是狗类的父类(基类)。在 Java 中是单继承的,也就是说一个子类只有一个父类。继承= is。

继承的特点:

(1)子类比父类强大
(2) java 是单继承,不能进行多继承。但是可以继承多层子类(不建议继承超过3层)
3)子类继承父类,但是对父类的成员变量是无法直接操作
继承的优点:
(1)减少代码量,能很好的提高复用率。
(2)使类与类之间存在继承关系,是实现多态操作的前提。

继承的缺点:继承使得多个类之间具有了子父类关系,当一个类存在多个子类的时候,如果父类发生变化,那么这些子类会跟着一同变化,造成类与类之间的“强耦合”关系!

四、多态

1.不同类的对象对同一消息作出不同的响应叫做多态,就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。

2.多态存在的三个条件:有继承关系、子类重写了父类方法、父类引用指向子类对象。

3.注意: 因为多态存在必须要有“子类重写父类方法”这个条件,那么下面类型的方法没办法表现出多态的特性(因为不能被重写)

static方法:static修饰的方法是属于类的,而不属于实例;

final方法:因为被final修饰的方法无法被子类重写;

private方法:被private修饰的发那个法对子类不可见;

protected方法:被protected修饰的方法可以被子类见到,也可以被重写,但无法被外部所引用,无法引用,就没有多态。

4.多态的分类:编译时多态,方法的重载、运行时多态,方法的重写。

5.多态问题的几条原则: 比如有一个父类Father,有一个子类Children,

(1)向上转型是自动的。Father f=new Children()是自动的,不需要强转;

(2)向下转型要强转。即Children c=new Father()是无法编译通过的,必须要Children c=(Children)new Father(),让父类知道它要转成具体哪个子类;

(3)父类引用指向子类对象,子类重写了父类的方法,调用父类的方法,实际调用的是子类重写了父类的该方法。

即 Father f=new Children(),f.toString()实际上调用的是Children中的toString()方法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值