龙空技术网

Java基础知识——封装、继承、多态

程序员进阶之路 245

前言:

眼前各位老铁们对“java封装继承”大体比较讲究,你们都想要剖析一些“java封装继承”的相关内容。那么小编在网络上汇集了一些对于“java封装继承””的相关内容,希望兄弟们能喜欢,姐妹们快快来学习一下吧!

1 基本概括

2 详解

封装:

是将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

封装的优点:只能通过规定的方式来访问数据;隐藏类的实现细节;方便加入控制语句(比如验证参数合法性);方便修改实现(比如修改了属性的类型,接口可以添加一次转换)。

继承:

继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。简单概括为,父类提供共性,子类补充特殊性。

使用继承时的三个关键:子类拥有父类的所有属性和方法,但只能调用非private的属性和方法;子类可以对父类进行扩展,拥有自己的属性和方法;子类可以自己实现父类的方法。

构造器:子类不能继承父类的构造器,只能调用父类的非private构造器,使用super()。切记必须在子类构造器第一行调用。

protected 关键字:方便同一个包的类和子类访问。

向上转型:class A;class B extend A;A b = new B() 的使用,即B是A的意思。

切记谨慎使用继承,理解is-a的关系。代码重用可以考虑工具类,行为相同可以考虑接口。《Think in Java》提到:问一问自己是否需要从子类向父类进行向上转型。如果必须向上转型,则继承是必要的,但是如果不需要,则应当好好考虑自己是否需要继承。

多态:

所谓多态,就是指一个引用(类型)在不同的情况下的多种状态。也可以理解为,多态是指通过指向父类的指针,来调用在不同子类中实现的方法。

在上面提到子类可以自己实现父类的方法。例如 class A;class B extend A;class C extend A;在B 和C中分别自己实现了A的某个函数,当A b = new B() A c = new C() 时,调用b,c 相同函数可能会返回不同的行为,因为父类的引用变量指向子类对象了。

喜欢的话可以点下关注。

标签: #java封装继承