在介绍完类和对象之后,我们在使用Java的过程中,还会面临定义的类相似而数目众多的情况,这时为避免重复定义新类,引入了继承的概念。

对于继承,我们也可以从这几个方面认识:

1.继承
2.访问权限
3.重写和自动转型
4.场景实操

一、继承:

能够让一个类(子类)拥有另一个类(父类)的属性和方法。

那么,

现实生活中还有哪些继承关系?类似于C++中的继承关系,继承获得了父类所有特性并可以同时拥有自己的特性,父类子类都可以不止一个。

现实生活中如水果–>苹果,汽车、船–>水陆两用汽车。。。

java继承层次结构例子 java继承总结_子类


值得注意的是Object是Java中所有其他类的父类,故所有类中都包含object所包含的特性。

关键词:extends

二、访问权限:

控制被修饰的内容能在哪些地方使用。
其实这一步检验非常简单,不同于C++,Java可以在输入的时候同时判断代码是否有错误,非常人性化。

当前类中 同一个包下的类 不同包下的子类 其他public √ √ √ √ protected √ √ √ /(缺 省) √ √ private √

可以总结为:

public公有的,所有的地方都可以访问使用

protected所有的子类都可以访问使用

/(缺省)同一个包下的所有类都可以使用

private只有当前类中可以使用

子类继承父类,能继承哪些内容?
能继承所有的属性和方法,同时限于访问权限,部分属性和方法不能直接使用。

三、重写和自动转型:

重写:父类的方法不能满足子类的需要,则子类可以覆盖父类的方法,所谓长江后浪推前浪,前浪死在沙滩上~
要求:
1、必须要有继承关系
2、方法的声明,除了访问权限可以扩大,其他(如引用的参数)子类中必须和父类完全一样。
自动转型:
子类对象可以自动的变为父类对象(儿子可以长大成为父亲,反之不能)
自动转型后,对象可以用的属性和方法以父类为准,方法调用的内容以子类为准。

四、场景实操:

同我的上一篇博客互相PK,采用回合制,每次攻击,被攻击方的血量减少攻击方的攻击值,重复,直到某一方的血量小于等于0,这时加设一个大boss,胜利的一方继续和bossPK,boss每次攻击让被攻击方的血量减少boss的两倍攻击值,重复,直到某一方的血量小于等于0。

我们可以在上一节类和对象的基础上将角色都定义为同一个父类的子类进行比赛,为简化过程,可以优化进攻的函数,将返回值设置为父类,这样可以避免攻击的冗杂过程而通过调用两次函数直接获得最终赢家。
共勉!