面向对象

面向对象是一种抽象的编程思想,类是这种思想的具体实现。对象是类的具体实列。
面向对象有三大特征:封装、继承、多态

封装:
封装指隐藏类的内部实现,不允许外部程序直接访问,外部程序只能通过对外提供的方法访问和操作隐藏的信息。
通过权限操作符private来实现类的封装,被private修饰的属性或方法仅归本类所有,在任何其他类中不能直接访问。

修饰符本类同包子类其他
privatetruefalsefalsefalse
默认truetruefalsefalse
protectedtruetruetruefalse
publictruetruetruetrue

封装是面向对象编程的核心思想,封装有如下优点:
一、隐藏一个类中不需要对外提供的实现细节
二、使用者只能通过预先定义的方法或方式访问类内部的属性和方法,使用者不用关心方法的具体实现,便于使用;同时可以加入逻辑判断限制对属性的不合理修改

继承:
继承是在已有的类中派生出新的类,新的类通过吸收已有的类中的属性和方法并且拓展自己的功能。Java中通过extends实现类的继承,被继承的类称为父类或超类,继承的类称为子类。Java中只能单继承,也就是一个类只能继承一个父类。
实现继承后 ,子类将拥有父类中的非private修饰的属性和方法,如此实现了代码的可复用。
我们说到继承的时候就需要明白两个概念:方法重载和方法重写
方法重载:同一个类中拥有多个名字相同的方法,但是他们的参数个数或者参数类型不一致。
方法重写:方法重写只发生在继承当中,子类如果对继承的父类中的方法感觉不合适,可以重写这个方法。重写时方法的返回值类型、参数类型以及个数等都需要与父类一致,子类可以调用自身重写的方法替换继承的父类中的方法。

多态:
多态顾名思义就是指对象的多种形态,Java中的多态表现在两个方面:引用多态和方法多态

引用多态:
父类的引用不仅可以指向父类对象并且父类的引用还可以指向子类对象。
如下代码:AClass是父类 BClass为子类

AClass A = new AClass();//父类引用指向父类对象
AClass B = new BClass();//父类引用指向子类对象

反过来却不行,也就是说子类引用不能指向父类对象:

BClass a = new AClass();//这样编译就会报错 即便强转 虽然编译阶段可以过但是运行时一样会报异常

方法多态:
当父类对象和子类对象都是父类对象的引用时,他们调用的方法也是多态的:
创建父类对象:调用父类中的方法
创建子类对象:调用的方法是子类重写的方法或者继承的方法
注意:当在子类中创建一个独有的方法也就是非继承自父类的方法时,使用父类引用创建的子类对象不能调用这个方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值