Java 类的继承,抽象类 封装

继承   extends

public class 子类 extends 父类;

子类自动拥有父类的可继承的成员变量和成员方法;

继承的好处:

1、继承的出现提高了代码的复用性,提高软件开发效率。

2、继承的出现让类与类之间产生了关系,提供了多态的前提。

类的继承只允许单继承,即一个子类只能继承一个父类。

但是允许多层继承,父类的成员变量和成员方法会一直继承下去。

方法的重写

子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为override重写、复写或者覆盖

重写需要注意的细节问题:

l 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。

写法上稍微注意:必须一模一样:方法的返回值类型 方法名 参数列表都要一样。

总结:当一个类是另一个类中的一种时,可以通过继承,来继承属性与功能。如果父类具备的功能内容需要子类特殊定义时,进行方法重写。

抽象类  abstract

抽象类的定义格式

public abstract 返回值类型 方法名(参数);

抽象类的特点

 

1、抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。

 

2、抽象类不可以直接创建对象,原因:调用抽象方法没有意义。

 

3、只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。

 

之所以继承抽象类,更多的是在思想,是面对共性类型操作会更简单。

1、抽象类一定是个父类?

是的,因为不断抽取而来的。

2、抽象类中是否可以不定义抽象方法。

是可以的,那这个抽象类的存在到底有什么意义呢?不让该类创建对象,方法可以直接让子类去使用

3、抽象关键字abstract不可以和哪些关键字共存?

l 1、private:私有的方法子类是无法继承到的,也不存在覆盖,而abstract和private一起使用修饰方法,abstract既要子类去实现这个方法,而private修饰子类根本无法得到父类这个方法。互相矛盾。

l 2、final,太监方法,无法被继承

l 3、static,静态方法,可以通过类名。方法名直接调用,抽象方法调用没有意义。

 封装

封装就是隐藏实现细节,提供公共的方法

n 1、方法就是一个最基本封装体。

n 2、类其实也是一个封装体。

l 从以上两点得出结论,封装的好处:

n 1、提高了代码的复用性。

n 2、隐藏了实现细节,还要对外提供可以访问的方式。便于调用者的使用。这是核心之一,也可以理解为就是封装的概念。

n 3、提高了安全性。

原文地址:https://www.cnblogs.com/marswenze/p/13255434.html