文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

一篇文章带你了解Java继承那些事儿

2024-12-03 15:20

关注

一、继承的概念

什么是继承

在现实生活中,继承指的是子女继承父辈的财产。在程序中,当一个类A能够得到另一个类B中所有非私有的数据和操作的定义作为自己的部分或全部成分时,我们就叫做这两个类之间具有继承关系。

例如猫、狗、兔、猪都属于动物,在程序中猫、狗、兔、猪都继承动物。波斯猫和英国短毛猫继承猫,这些动物会形成一个继承体系。在程序中继承在现有的类基础上创建一个新的类,创建一个新的类叫做子类,现有类叫做父类或超类,子类会拥有父类所有可继承的属性和方法。

继承的实现

① 确定父类。

② 定义子类。

  1. [类修饰符]  class 子类名 extends 父类名 

子类能够继承父类所有非私有的属性和方法。

③ 实现子类的功能。

类是如何继承父类案例一

  1. //定义Fruit水果类 
  2. class Fruit{ 
  3.     public double weight;//重量属性 
  4.     //info()方法 
  5.     public void info(){ 
  6.             System.out.println("我是一个水果,重量为" + weight + "g!"); 
  7.     } 
  8. public class Apple extends Fruit{ 
  9.     public static void main(String[] args){ 
  10.             Apple a = new Apple();//创建对象 
  11.             a.weight = 87;//给weight属性赋值 
  12.             a.info();//调用info方法 
  13.     } 

输出的结果是:

  1. 我是一个水果,重量为87.0g! 

从上面代码中,我们可以看出定义了一个Fruit类,在Fruit类中定义了weight属性和info方法。Apple类继承Fruit类,创建对象实例化,然后给weight属性赋值,调用info方法。

类是如何继承父类案例二

  1. class Animal{ 
  2.     public String name;//名字属性 
  3.     public int age;//年龄属性 
  4.     //动物叫的方法 
  5.     void shout(){ 
  6.         System.out.print("喵喵喵~~~"); 
  7.   } 
  8. //定义Cat继承Animal类 
  9. class Cat extends Animal{ 
  10.     //显示名字和年龄方法 
  11.     public void show(){ 
  12.         System.out.print("我是"+name+","+"今年"+age+"岁"); 
  13.   } 
  14. public class p20 { 
  15. public static void main(String[] args) { 
  16.     // TODO Auto-generated method stub 
  17.     Cat c=new Cat();//创建Cat类实例对象 
  18.     c.name="英国短毛猫";//给Cat类的name属性赋值 
  19.     c.age=2;//给Cat类的age属性赋值 
  20.     c.show();//调用Cat类的show()方法 
  21.     c.shout();//调用Cat类的shout()方法 
  22.   } 

输出的结果是:

  1. 我是英国短毛猫,今年2岁喵喵喵~~~ 

在上面代码中,首先是定义了一个Animal类,Cat类使用extends继承Animal类.,使得Cat类是Animal类的子类,Animal作为一个父类。我们便发现在子类并没有定义name、age属性和shout()方法,可以访问到它们非私有属性和方法。说明了子类是可以拥有父类的所有非私有的属性和方法。

二、继承需要注意的问题

单重继承是指任何一个类都只有一个单一的父类。

例如:

  1. class A1{ 
  2.     void show(){ 
  3.     System.out.println("A1"); 
  4.     } 
  5. class A2{ 
  6.     void show(){ 
  7.     System.out.println("A1"); 
  8. class B extends A1,A2{ 
  9.     public void show(){ 
  10.     System.out.println("bbb"); 
  11.     }  

在上面代码中是不合法的,任何一个类只有支持单继承,不可以多重继承。也是就B类是不可以同时继承A1和A2。如果B b=new B(),那么b.show()是调用哪个一个父类方法呢?无法给出答案,所以是不能多重继承。

多重继承是指一个类可以有一个以上的父类,它的静态的数据属性和操作从所有这些父类中继承。

多个类可以继承一个父类。

例如:

  1. class A{} 
  2. class B extends A{} 
  3. class C extends A{} 

在上面代码中是合法的,B类和C类都可以继承A类的所有非私有属性和方法。

一个类的父类可以去继承另外的父类,这就是多层继承。

例如:

  1. class A{} 
  2. class B extends A{} 
  3. class C extends B{} 

在上面代码中,实现了多层继承B类继承A类,B类是A类的子类,C类继承B类,C类是B类的子类,C类也是A类的子类。在一个类是某个类父类的同时,也是另一个类的父类。例如B类是A类的子类,也是C类的父类。

三、总结

本文主要介绍了继承、继承需要注意的问题。继承是当一个类A能够得到另一个类B中所有非私有的数据和操作的定义作为自己的部分或全部成分时,我们就叫做这两个类之间具有继承关系。

本文介绍了继承的实现方法,通过两个案例帮助理解继承的用法。继承是只支持单继承,不支持多重继承。多个类可以继承一个父类。一个类的父类是可以继承另外的父类。希望大家通过本文的学习,对你有所帮助!

本文转载自微信公众号「Java进阶学习交流」,可以通过以下二维码关注。转载本文请联系Java进阶学习交流公众号。

 

来源: Java进阶学习交流内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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