浅谈面向对象第三枪

前面说到了Java中this,static关键字和参数传递的问题,这一篇来谈谈Java中三大特征封装,继承,多态。
先来说说封装,封装其实就是将类的某些成员利用一些方法私有化起来,对外不可见,只提供一些公共方法或接口来让用户访问,具体就是,实现了对象的信息隐藏,使其成为了一个不可分割的独立实体。而封装的好处主要就是:良好的封装能降低耦合度;类内部的结构可以自由修改,可以对类成员进行更精确的控制;最主要的还是信息隐藏,实现细节。
下面咱们接着说继承,继承主要是用关键字 extends来实现,在Java中只支持单继承,不支持多继承,也就是说,在Java中一个类只能继承自一个父类,并且不能同时继承多个父类。这也是Java中国面向对象与面向过程的区别之一,但是一个类不能同时继承多个类,却可以同时实现多个接口,这样也就增加了灵活性。继承过程中,子类可以继承到父类除了构造方法和私有成员外的所有成员,同时,子类可以对父类原有的方法进行重写,实现自己的功能;除此之外,子类还可以添加自己独有的方法,实现父类没有或者不能实现的功能。方法的重写主要在类与类之间继承的时候会出现,它是多态的动态体现,除了重写,对方法的操作还有一个叫重载,重载是在同一个类中不同方法之间出现的,它是多态的静态体现。
继承例如:
class Person{

String name;

int age;

String addr;

public void eat(){ 

}

public void sleep(){

}

}

class Student extends Person{

String number;

String classNo;

String schoolName;

public void study(){

}

}

在继承中主要用到的关键字有super,利用这个关键字,可以显式地调用父类中的成员方法和变量;但是super关键字只能用在成员方法中,不能用在静态成员方法中。若果出现在构造方法中,则同this一样也只能作为第一条执行语句被编写。如果在程序中还想调用子类特有的方法,则必须将父类强制类型转换成子类才能还原子类特有的功能。强制类型转换也叫向下转型:将父类转换成子类对象,但是,这样会有危险出现,那么就应该用instanceof关键字进行判断对象是不是类的实例,是就返回true,不是就返回false。这样就可以选择性的进行转型了。

多态的概念:在同一类对象的情况下,不同的对象对同一个消息有不同的响应.多态在程序中的表现:父类的引用地址指向子类的实例(对象),调用方法时执行的是子类中的方法.

前面已经说过,方法的重写和重载就是多态的最好体现,需要记住的是:方法的重载是是编译时多态(静态多态),而方法的重写是运行时多态(动态多态

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值