java面向对象的三大特性----封装、继承、多态

来源:互联网 发布:js改变display样式 编辑:程序博客网 时间:2024/05/16 01:52

1、封装

所谓封装,就是把实现细节隐藏起来,把该公开的公开,该私有的私有;简单点说,对于一个类,其中包含有属性和方法,其中属性对外部来说,可有可无,此时就可有把属性设为private,提供公开的getter/setter方法供外部访问。对于方法来说也是把该私有的私有化,对外部需要调用的公开化。

2、继承

关键字:extends

继承语法

public 子类名 extends 父类名 {}

一个类A继承了另一个类B,类A就拥有了类B中所有的非私有成员。

注:Java只支持单继承,也就是说一个类只能继承一个类;类的继承具有传递性,A继承了B,B又继承了C,那A也继承了C。

继承中的访问权限修饰符:

private:只有本类可以访问。

(default):同一个包内可以访问,也就是父类与子类处于同一个包,子类可以继承父类相应的内容,不同包子类就不能继承父类中相应的内容。

protected:同包内可以访问,子类和父类处于不同包,其子类也可以访问父类中相应内容。

public:任何地方都可以访问。

注:父类构造方法不能被继承。

继承的意义:子类可以在父类的基础上对扩展,继承可以降低程序的耦合性,也就是使对象间的联系变的松散,使对象间的联系使用父类替代。

方法覆盖:重写父类中继承到的方法,方法名、参数、返回值必须相同,同时不能降低父类方法的访问权限。

super关键字:

super(),表示在子类构造方法中调用父类构造方法,super()只能在子类构造方法中调用,且只能写在第一句。不写系统会默认掉用系统的无参构造方法。如果父类重载了带参数的构造方法,且没有写无参构造方法,那在子类构造方法中必须调用super(xx,xx)保证父类的构造。在子类中调用父类的方法,采用super.方法名 调用。

this:指代当前对象。

3、多态

具有同一种编译时类型的对象引用,调用同一个方法,而在运行时具备不同的行为,这就是多态。

多态的条件:具有继承关系,方法覆盖。

对一个对象来说,在对象产生时,运行时类型就已经确定不可改变,编译时类型可以和运行时类型不同。在一个对象声明时可以确定其运行时类型,单编译时类型可以指向其本类型或其子类型。

注:类的属性没多态,只会根据编译时类型访问。只有子类覆盖了父类的方法,且把子类对象当做父类类型看待时才有多态。要注意区分子类中方法的重载。

0 0
原创粉丝点击