文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java中的继承如何实现

2023-06-29 23:15

关注

本篇内容主要讲解“Java中的继承如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中的继承如何实现”吧!

一. 继承

众所周知,我们Java语言是一种面向对象的编程语言,每当我们提到Java的特性,大家一定会在脑海里浮现出Java中的继承、多态以及封装。 

1.1 继承的实现

继承是面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,以及追加属性和方法。

我们为了让大家更好的掌握其格式,现在给出一个简单的案例加以说明:

public class Fu {public void show() {System.out.println("show方法被调用");}}public class Zi extends Fu {public void method() {System.out.println("method方法被调用");}}public class Demo {public static void main(String[] args) {//创建对象,调用方法Fu f = new Fu();f.show();Zi z = new Zi();z.method();z.show();}}

该案例执行的结果如下:

Java中的继承如何实现

1.2 继承的好处和弊端

二. 继承中的成员访问特点

2.1 继承中变量的访问特点

在子类方法中访问一个变量,采用的是就近原则

我们还是以上面的案例加以说明:

class Fu {int num = 10;}class Zi {int num = 20;public void show(){int num = 30;System.out.println(num);}}public class Demo1 {public static void main(String[] args) {Zi z = new Zi();z.show(); // 输出show方法中的局部变量30}}

具体该案例执行的结果如下:

Java中的继承如何实现

2.2 super

2.3 继承中构造方法的访问特点

注意:子类中所有的构造方法默认都会访问父类中无参的构造方法

子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化,原因在于,每一个子类构造方法的第一条语句默认都是:super()

问题:如果父类中没有无参构造方法,只有带参构造方法,该怎么办呢?

过使用super关键字去显示的调用父类的带参构造方法

父类中自己提供一个无参构造方法

推荐方案:

自己给出无参构造方法

2.4 继承中成员方法的访问特点

通过子类对象访问一个方法

2.5 super内存图

Java中的继承如何实现

2.6 方法重写

2.7 方法重写的注意事项

我们仍是通过前面的案例加以说明这个问题:

public class Fu {private void show() {System.out.println("Fu中show()方法被调用");}void method() {System.out.println("Fu中method()方法被调用");}}public class Zi extends Fu {@Overrideprivate void show() {System.out.println("Zi中show()方法被调用");}@Overrideprivate void method() {System.out.println("Zi中method()方法被调用");}@Overridepublic void method() {System.out.println("Zi中method()方法被调用");}}

Java中的继承如何实现

与我们给出的注释是一致的;因此在我们日常的编程中一定要注意。

2.8. Java中继承的注意事项

为了让大家更好的理解该知识点,我们给出以下的代码:

public class Granddad {public void drink() {System.out.println("爷爷爱喝酒");}}public class Father extends Granddad {public void smoke() {System.out.println("爸爸爱抽烟");}}public class Mother {public void dance() {System.out.println("妈妈爱跳舞");}}public class Son extends Father {// 此时,Son类中就同时拥有drink方法以及smoke方法}

三. 继承练习

  • 需求:定义老师类和学生类,然后写代码测试;最后找到老师类和学生类当中的共性内容,抽取出一个父类,用继承的方式改写代码,并进行测试

  • 根据其需求我们给出以下的思路:

           ①定义老师类(姓名,年龄,教书())

           ②定义学生类(姓名,年龄,学习())

           ③定义测试类,写代码测试

           ④共性抽取父类,定义人类(姓名,年龄)

           ⑤定义老师类,继承人类,并给出自己特有方法:教书()

           ⑥定义学生类,继承人类,并给出自己特有方法:学习()

           ⑦定义测试类,写代码测试

我们通过以上的需求以及思路实现如下的代码:

package inheritExample;class Person {private String name;private int age;public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}class Teacher extends Person {public Teacher() {}public Teacher(String name,int age) {super(name,age);}public void teach() {System.out.println("用心去撰写每一篇博客");}}class Student extends Person{public Student() {}public Student(String name, int age) {super(name,age);}public void study(){System.out.println("读者阅读");}}class PersonDemo {public static void main(String[] args){//创建老师类对象并进行测试Teacher t = new Teacher();t.setName("一计之长");t.setAge(28);System.out.println(t.getName() + "," + t.getAge());t.teach();// 创建学生类对象测试Student s1 = new Student("readA",18);System.out.println(s1.getName() + "," + s1.getAge());s1.study();Student s2 = new Student("readB",23);System.out.println(s2.getName() + "," + s2.getAge());s2.study();}}

具体执行的结果如下:

Java中的继承如何实现

到此,相信大家对“Java中的继承如何实现”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯