超级白中白的学习进程2继承Extends

28次阅读

共计 1350 个字符,预计需要花费 4 分钟才能阅读完成。

继承(Extends)
1、前言
还是先说一下博主本人的一些基本情况吧。本人去年刚刚毕业,专业是电气工程及其自动化,就是在大学期间完全没有接触过 JAVA,也就稍稍了解了一下 C 语言。后来找了现在的工作也是和编程没有任何关系,是的,本人现在就是全职工作,每天的学习时间只有 6 点下班后,还有锻炼一个小时身体,一天也没有几个小时学习,全都是看视频自学的。不过现在就是打算辞职出去培训班专门学习 JAVA,现在发文的根据也是培训机构发过来的视频学习的,等 6 月份的时候会重新开始,到时候会才最基础的设置环境开始发文。特别强调,本文是我自己对于学习的理解,可能理解不到,甚至是理解错误,所以仅仅作为参考,不作为任何指导,也希望各位看到我的错误能够指出来,谢谢!
2、概念
继承,根据字面意思很容易理解就是父辈把他的东西给子辈,不论父辈有什么,子辈就一定会有什么,不论子辈有多少个,他们得到的都是一样相等的。继承主要解决的问题就是共性抽取。格式如下:
public class 子类名 extends 父类名 {}

3、特点
1> JAVA 里面的继承是单继承的:一个类只能拥有一个父类;
2> JAVA 可以多级继承:假设类 C 的父类是类 B,类 B 的父类是类 A,那么我们也称 A 为 C 的父类;
3> JAVA 里面一个父类可以同时拥有多个子类;
4> 子类可以直接调用父类成员变量和方法:父类创建一个 int 变量 int faNum = 10,成员方法 method(),里面就输出一句话“父类中的方法”, 在测试程序中可以直接这样写:

5> 父类的方法返回类型一定要大于等于子类:就拿我们常见的 Object 和 String 类来说,总所周知,Object 是所有类的祖宗类,所以我们这样写没有问题:
父类中的方法:

子类中的方法:

但是两者的返回值反过来就会编译报错。
6> 父类中的访问权限一定要小于或者等于子类:
访问权限的 4 个关键字访问权限大小:public>protected>(default)>private,其中 default 为默认值,不用写。
4、super 和 this 关键字
刚刚演示了子类可以直接调用父类的成员变量和方法,那么如果父子两个类定义的成员变量的名字和成员方法名字一样,在测试程序里面写子类名. 变量名,会输出哪个呢?比如: 在父类中定义一个 int 值,int num = 10;子类中也定义一个 int 值,int num = 20;在测试程序里面创建子类的对象,对象名为:son。那么,System.out.println(son.num); 会输出什么呢?答案是:20。这个过程可以简单的理解为程序会调用里它最近的那个参数。

上面的例子输出语句也可以这样写:System.out.println(this.num);this 关键字可以简单的理解成代替本来的名字。但是上面的例子要输出 10 的话就需要关键字:super 了。输出语句改为:System.out.println(super.num); 此时的输出结果就是 10。下面是一个典型的代码:
父类代码:

子类代码:

测试类代码:

输出

结果在子类那里已经表明。这几行代码表明了 this 和 super 的用法。

作者:ZHC_YTYQ
来源:CSDN
原文:https://blog.csdn.net/ZHC_YTY…
版权声明:本文为博主原创文章,转载请附上博文链接!

正文完
 0