当前位置: 首页 > 科技观察

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

时间:2023-03-12 02:17:18 科技观察

一、继承的概念1、什么是继承在现实生活中,继承是指孩子继承父母的财产。在程序中,当一个类A能够获取另一个类B中的所有非私有数据和操作定义,作为自身组件的一部分或全部时,我们称这两个类为继承关系。2、比如猫、狗、兔、猪都属于动物。节目中,猫、狗、兔、猪都继承了动物。波斯猫和英国短毛猫继承猫,这些动物会形成一个继承系统。程序中的继承在现有类的基础上创建了一个新类。创建新类称为子类,现有类称为父类或超类。子类将拥有父类所有可继承的属性和方法。3.继承的实现①确定父类。②定义子类。[类修饰符]类子类名extends父类名子类可以继承父类的所有非私有属性和方法。③实现子类的功能。4.类如何继承父类案例1//Fruit水果类的定义classFruit{publicdoubleweight;//权重属性//info()方法publicvoidinfo(){System.out.println("我是一个水果,权重为"+weight+"g!");}}publicclassAppleextendsFruit{publicstaticvoidmain(String[]args){Applea=newApple();//创建对象a.weight=87;//分配权重属性a.info();//调用info方法的输出}}是:我是一个水果,重量为87.0g!从上面的代码我们可以看到定义了一个Fruit类,在Fruit类中定义了weight属性和info方法。Apple类继承Fruit类,创建对象实例化,给weight属性赋值,调用info方法。5.类如何继承父类案例2classAnimal{publicStringname;//名字属性publicintage;//年龄属性//动物调用方法voidshout(){System.out.print("喵喵喵~~~");}}//定义Cat继承Animal类classCattextendsAnimal{//显示姓名和年龄的方法publicvoidshow(){System.out.print("我是"+name+","+"今年"+age+"岁数");}}publicclassp20{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubCatc=newCat();//创建一个Cat类实例对象c.name="BritishShorthair";//给Cat类的name属性赋值c.age=2;//给Cat类的age属性赋值c.show();//调用Cat类的show()方法c.shout();//调用shout()Cat类的方法}}输出结果为:我是英国短毛猫,今年2岁。喵喵~~~上面代码中,首先定义了一个Animal类,Cat类使用extends继承Animal类,这样Cat类就是Animal类的子类,Animal是父类。我们发现子类中没有定义name、age属性和shout()方法,可以访问到它们的非私有属性和方法。说明子类可以拥有父类的所有非私有属性和方法。二、继承需要注意的问题1、单继承是指任何类都只有一个父类。例如:classA1{voidshow(){System.out.println("A1");}}classA2{voidshow(){System.out.println("A1");}classBextendsA1,A2{publicvoidshow(){System.out.println("bbb");}}在上面的代码中是非法的,任何类都只能支持单继承,不能支持多继承。也就是说B类不能同时继承A1和A2。如果Bb=newB(),那么b.show()调用的是哪个父类方法?无法给出答案,所以多重继承是不可能的。2、多重继承是指一个类可以有多个父类,它的静态数据属性和操作都继承自所有这些父类。3.多个类可以继承一个父类。例如:classA{}classBextendsA{}classCextendsA{}在上面的代码中是合法的,B类和C类都可以继承A类的所有非私有属性和方法。4.一个类的父类可以继承另一个父类类,也就是多层继承。例如:classA{}classBextendsA{}classCextendsB{}在上面的代码中,实现了多层继承。B类继承A类,B类是A类的子类,C类继承B类,C类是B类的子类,C类也是A类的子类,当一个类是A类的父类某个类,它也是另一个类的父类。例如B类是A类的子类,是C类的父类。3.总结本文主要介绍继承和继承需要注意的问题。继承是指当一个类A能够获取另一个类B中的所有非私有数据和操作定义,作为自身组件的一部分或全部时,我们称这两个类为继承关系。本文介绍继承的实现方法,通过两个案例帮助理解继承的用法。继承只支持单继承,不支持多继承。多个类可以继承自一个父类。一个类的父类可以继承另一个父类。希望大家通过本文的学习对大家有所帮助!本文转载自微信公众号《Java进阶学习交流》,可通过以下二维码关注。转载本文请联系Java进阶学习交流公众号。