面向对象的三大特征

面向对象的三大特征

一.封装

JAVA语言的封装是将对象的某些属性封装到类中,隐藏对象的细节部分.使得外部不能直接访问,同时提供相应的方法供类对象来使用.大大提高了数据的安全性并且方便对程序修改和维护.

封装的应用:

JavaBean实现的就是封装技术.前一篇博文描述了JavaBean是如何实现的.
一个标准类(javaBean)

JAVA中的内部类也是封装的应用.

二.继承

1.继承的概念

继承就是子类继承父类的属性和行为,JAVA中的继承就是建立分等级层次的类,将具有相同特征的属性和行为,写成父类;然后使用子类继承父类的属性和方法,同时子类还可以拥有自己的属性和方法.

2.继承的好处
1)继承机制减少了代码量,增强了代码复用率.
2)提高代码的维护性
3)多态的前提条件之一
3.继承的弊端
1)增加了程序的耦合性,也就是增加了类的数量.
4.继承中的成员变量冲突问题

当父类的成员变量名字与子类的成员变量名相同时,会发生冲突问题

成员变量的访问顺序是:
	1)子类的局部位置
	2)子类的成员位置
	3)父类的成员位置
	4)报错
在继承中访问成员变量时,遵循就近原则:
	按照上面所示的顺序选择选择最近的位置访问.
5.继承中的关键字this super

this 和super是相对于对象存在的,在静态方法中不存在;

this表示当前对象的堆地址

  1. this.变量名(方法名()) 表示调用当前方法的对象的变量或方法

  2. this(); 表示调用当前方法的对象的无参构造方法

  3. this(a);表调用当前方法的对象的有参构造犯法

super表示当前对象的父类的一个引用

  1. super变量名(方法名()) 表示调用当前方法的对象的父类对象变量或方法

  2. super(); 表示调用当前方法的对象的父类对象无参构造方法

  3. super(a);表调用当前方法的对象的父类对象有参构造犯法

6.继承中构造方法与代码块的执行顺序
7.方法重载与方法重写的区别
8.继承中的注意事项
  1. JAVA中一个类只能继承一个父类,但是可以多层次继承.
  2. 子类可以继承父类的非私有的属性和方法.即非private修饰
  3. JAVA中所有类的超类是Object,称为上帝类
  4. 子类不能继承父类的构造方法,但是可以通过super关键字来访问.
  5. 在创建子类对象时,会调用父类的构造方法,如果被调用的父类构造方法不存在,会报错.
  6. 子类可以重写父类的方法,但是访问权限不能小于父类方法的访问权限.

三.多态

1. 多态的概念

多态是一个事物在不同时刻的不同体现.JAVA中的多态是在继承关系的类中,或是在接口与子实现类中,通过前提条件来灵活的调用子类方法的一种方式.

2.多态的前提
  • 1.继承关系
    2.方法重写
    3.向上转型(父类引用指向子类对象)
    父类名 对象名 = new 子类名();
3.多态的好处
  • 由于继承关系中,可以提高代码的复用性.
  • 提高方法调用的灵活性
4.多态的弊端
  • 不能访问子类的特有功能
    当需要访问子类的特有方法或属性时,要通过向下转型,
    子类名 子类对象名 = (子类名)父类的引用;
  • 注意:在类型转换时如果转换两个没有关系的类,会抛出类转换异常:java.lang.ClassCastException:
5.多态的成员访问特点
  1. 父类名 对象名 = new 子类名();

  2. 构造方法:分层初始化

  3. 成员变量:编译看左,运行看左;

    注意:子类成员变量与父类重名时,访问的始终是父类的成员变量
    
  4. 静态的成员方法:编译看左,运行看左

  5. 子类继承的成员方法:编译看左,运行看左

  6. 子类重写的成员方法:编译看左,运行看右

     总结:只有当子类重写了父类的方法时,才可以通过多态访问子类方法!
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值