
文章插图
一、继承的概念
1.什么是继承
在现实生活中 , 继承指的是子女继承父辈的财产 。在程序中 , 当一个类A能够得到另一个类B中所有非私有的数据和操作的定义作为自己的部分或全部成分时 , 我们就叫做这两个类之间具有继承关系 。
2.例如猫、狗、兔、猪都属于动物 , 在程序中猫、狗、兔、猪都继承动物 。波斯猫和英国短毛猫继承猫 , 这些动物会形成一个继承体系 。在程序中继承在现有的类基础上创建一个新的类 , 创建一个新的类叫做子类 , 现有类叫做父类或超类 , 子类会拥有父类所有可继承的属性和方法 。
3.继承的实现
① 确定父类 。
② 定义子类 。
[类修饰符] class子类名 extends父类名 子类能够继承父类所有非私有的属性和方法 。
③ 实现子类的功能 。
4.类是如何继承父类案例一
//定义Fruit水果类 class Fruit{ public double weight;//重量属性 //info()方法 public void info(){ System.out.println("我是一个水果 , 重量为" + weight + "g!"); } } public class Apple extends Fruit{ public static void main(String[] args){ Apple a = new Apple();//创建对象 a.weight = 87;//给weight属性赋值 a.info();//调用info方法 } } 输出的结果是:
我是一个水果 , 重量为87.0g! 从上面代码中 , 我们可以看出定义了一个Fruit类 , 在Fruit类中定义了weight属性和info方法 。Apple类继承Fruit类 , 创建对象实例化 , 然后给weight属性赋值 , 调用info方法 。
5.类是如何继承父类案例二
classAnimal{ publicStringname;//名字属性 public int age;//年龄属性 //动物叫的方法 void shout(){ System.out.print("喵喵喵~~~"); } } //定义Cat继承Animal类 class Cat extends Animal{ //显示名字和年龄方法 public void show(){ System.out.print("我是"+name+","+"今年"+age+"岁"); } } public class p20 { public static void main(String[] args) { // TODO Auto-generated method stub Cat c=new Cat();//创建Cat类实例对象 c.name="英国短毛猫";//给Cat类的name属性赋值 c.age=2;//给Cat类的age属性赋值 c.show();//调用Cat类的show()方法 c.shout();//调用Cat类的shout()方法 } } 输出的结果是:
我是英国短毛猫,今年2岁喵喵喵~~~ 在上面代码中 , 首先是定义了一个Animal类 , Cat类使用extends继承Animal类. , 使得Cat类是Animal类的子类 , Animal作为一个父类 。我们便发现在子类并没有定义name、age属性和shout()方法 , 可以访问到它们非私有属性和方法 。说明了子类是可以拥有父类的所有非私有的属性和方法 。
【一文带你了解Java继承规则 java中什么是继承性】 二、继承需要注意的问题
1.单重继承是指任何一个类都只有一个单一的父类 。
例如:
classA1{ voidshow(){ System.out.println("A1"); } } classA2{ voidshow(){ System.out.println("A1"); } classBextendsA1,A2{ publicvoidshow(){ System.out.println("bbb"); } } 在上面代码中是不合法的 , 任何一个类只有支持单继承 , 不可以多重继承 。也是就B类是不可以同时继承A1和A2 。如果B b=new B(),那么b.show()是调用哪个一个父类方法呢?无法给出答案 , 所以是不能多重继承 。
2.多重继承是指一个类可以有一个以上的父类 , 它的静态的数据属性和操作从所有这些父类中继承 。
3.多个类可以继承一个父类 。
例如:
classA{} classBextendsA{} classCextendsA{} 在上面代码中是合法的 , B类和C类都可以继承A类的所有非私有属性和方法 。
4.一个类的父类可以去继承另外的父类 , 这就是多层继承 。
例如:
classA{} classBextendsA{} classCextendsB{} 在上面代码中 , 实现了多层继承B类继承A类 , B类是A类的子类 , C类继承B类 , C类是B类的子类 , C类也是A类的子类 。在一个类是某个类父类的同时 , 也是另一个类的父类 。例如B类是A类的子类 , 也是C类的父类 。
三、总结
本文主要介绍了继承、继承需要注意的问题 。继承是当一个类A能够得到另一个类B中所有非私有的数据和操作的定义作为自己的部分或全部成分时 , 我们就叫做这两个类之间具有继承关系 。
本文介绍了继承的实现方法 , 通过两个案例帮助理解继承的用法 。继承是只支持单继承 , 不支持多重继承 。多个类可以继承一个父类 。一个类的父类是可以继承另外的父类 。希望大家通过本文的学习 , 对你有所帮助!
推荐阅读
- 垃圾分类顺口溜 了解一下
- 一文教你精准定位埋藏的宝藏 我的世界海洋之心在哪里
- 一文解决各种屏幕变暗的问题 iphone亮度突然变暗了
- 带你全面了解地下城与勇士手游 dnf手游叫什么名字
- 一文讲透个人ip的含义 个人ip是什么意思
- 红薯干热量为何这么高 一起来了解吧
- 带你认识现有各种金的区别 白18k金是什么金
- 男人下半身短怎么搭配 这3种搭配方式了解一下
- 悼念词怎么写 带你如何快速书写
- 一文读懂显卡刷新率概念 显示器刷新率越高越好吗