Java语言学习总结 高级篇继承的概念及其使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java语言学习总结 高级篇继承的概念及其使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3346字,纯文字阅读大概需要5分钟。
内容图文
![Java语言学习总结 高级篇继承的概念及其使用](/upload/InfoBanner/zyjiaocheng/645/1e48b9452b034fbfbafb8cae66f9e303.jpg)
继承
Java的面向对象有三大特性:封装性,继承性,多态性,继承是多态的前提,没有继承就没有多态。
继承就是将几个类共有的属性,抽象成一个类,在定义新的类时,可以直接继承调用共有的变量或方法。省去重复定义相同代码的麻烦
继承关系的特点是:
- 子类可以拥有负类的“内容”
- 子类还可以拥有自己专有的内容
父类叫做基类或超类,子类叫做派生类,每一个类都可以看作父类。
继承定义格式
public class 子类名称 extends 父类名称{
//
}
示例代码:
- 建立父类
public class ExampleFather {
public void method(String son) {
System.out.println("这是父类的方法,被" + son + "继承了");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
- 建立第一个子类:
public class ExampleSonFirst extends ExampleFather {
public void methodSonFirst() {
System.out.println("SonFirst类自己的方法");
}
public static void main(String[] args) {
}
}
- 建立第二个子类
public class ExampleSonSecond extends ExampleFather{
public void methodSonSecond() {
System.out.println("这是SonSecond类自己的方法");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
- 建立调试类,并定义子类的对象
public class TestExample {
public static void main(String[] args) {
ExampleSonFirst sonfirst = new ExampleSonFirst();
sonfirst.method("SonFirst");
sonfirst.methodSonFirst();
ExampleSonSecond sonsecond = new ExampleSonSecond();
sonsecond.method("SonSecond");
sonsecond.methodSonSecond();
}
}
输出结果如下:
父类和子类成员重名时访问规则
成员变量重名
在父子类的继承关系中,如果成员变量重名,则创建子类对象时,访问有两种方式:
直接通过子类对象访问成员变量: 等号左边是谁,就优先用谁,没有则往上找
间接通过成员方法访问成员变量: 该方法属于谁,就优先用谁,没有则向上找
代码示例:
建立如下父子类
public class Fu {
int numFu = 100;
int num = 2000;
public void methodFu() {
System.out.println(num);
}
}
public class Zi extends Fu{
int numZi=300;
int num=1000;
public void methodZi() {
System.out.println(num);
}
}
调试类定义对象,调用变量方法代码如下:
public class TestFuZi {
public static void main(String[] args) {
Fu fu = new Fu();
System.out.println(fu.numFu);
System.out.println("=================");
Zi zi = new Zi();
System.out.println(zi.numZi);
System.out.println(zi.numFu);
System.out.println("=================");
System.out.println(zi.num);
System.out.println("=================");
zi.methodZi();
zi.methodFu();
fu.methodFu();
}
}
输出结果:
成员方法重名
在父子类的继承关系当中,创建子类对象,访问成员方法的规则:
创建的对象是谁,就优先用谁,如果没有则向上找
注意: 无论是成员方法还是成员变量,如果没有都是向上找父类,绝不会向下找子类的
继承中方法的覆盖重写
重写(override):
在继承关系中,方法的名称一样,参数列表也一样。
覆盖重写的特点: 创建的是子类对象,就优先用子类的方法
** @override ** :写在方法前面,用来检测是不是有效的正确覆盖重写。 这是可选的,但是建议只要是重写方法都写上,检测重写方法是否正确。
子类方法的返回值必须小于等于父类方法的返回值范围
java.lang.Object 类是所有类的公共最高父类
super关键字
在子类中用super关键字直接访问父类的方法。在父类和子类有重名方法时,可以使用。
继承中构造方法的访问特点
继承关系中,父子类构造方法的访问特点:
- 子类构造方法当中有一个 默认隐含的"super"调用,所以一定是先调用的父类构造,后执行的子类构造。
- 可以通过super关键字来子类构造调用父类重载构造。
子类必须调用父类构造方法,不写则赠送super(),写了则用写的指定的super调用,super只能写一个。
————————————————————————————————
内容总结
以上是互联网集市为您收集整理的Java语言学习总结 高级篇继承的概念及其使用全部内容,希望文章能够帮你解决Java语言学习总结 高级篇继承的概念及其使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。