网站首页 > 精选教程 正文
一、继承的概念
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.类是如何继承父类案例二
class Animal{ public String name;//名字属性 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()方法,可以访问到它们非私有属性和方法。说明了子类是可以拥有父类的所有非私有的属性和方法。
二、继承需要注意的问题
1.单重继承是指任何一个类都只有一个单一的父类。
例如:
class A1{ void show(){ System.out.println("A1"); } } class A2{ void show(){ System.out.println("A1"); } class B extends A1,A2{ public void show(){ System.out.println("bbb"); } }
在上面代码中是不合法的,任何一个类只有支持单继承,不可以多重继承。也是就B类是不可以同时继承A1和A2。如果B b=new B(),那么b.show()是调用哪个一个父类方法呢?无法给出答案,所以是不能多重继承。
2.多重继承是指一个类可以有一个以上的父类,它的静态的数据属性和操作从所有这些父类中继承。
3.多个类可以继承一个父类。
例如:
class A{} class B extends A{} class C extends A{}
在上面代码中是合法的,B类和C类都可以继承A类的所有非私有属性和方法。
4.一个类的父类可以去继承另外的父类,这就是多层继承。
例如:
class A{} class B extends A{} class C extends B{}
在上面代码中,实现了多层继承B类继承A类,B类是A类的子类,C类继承B类,C类是B类的子类,C类也是A类的子类。在一个类是某个类父类的同时,也是另一个类的父类。例如B类是A类的子类,也是C类的父类。
三、总结
本文主要介绍了继承、继承需要注意的问题。继承是当一个类A能够得到另一个类B中所有非私有的数据和操作的定义作为自己的部分或全部成分时,我们就叫做这两个类之间具有继承关系。
本文介绍了继承的实现方法,通过两个案例帮助理解继承的用法。继承是只支持单继承,不支持多重继承。多个类可以继承一个父类。一个类的父类是可以继承另外的父类。希望大家通过本文的学习,对你有所帮助!
本文转载自微信公众号「Java进阶学习交流」
- 上一篇: Java:一篇带你探索Javaの继承
- 下一篇: Java 17 继承
猜你喜欢
- 2024-11-27 JAVA面向对象的三大特征——继承
- 2024-11-27 JAVA中的注解可以继承吗?
- 2024-11-27 学长带你学习java第三课——继承
- 2024-11-27 java技术专家带你深入java核心技术:反射+继承设计技巧+枚举类
- 2024-11-27 【编程】Java中的继承和多态,你了解多少?
- 2024-11-27 Java开发:java面向对象思想之继承
- 2024-11-27 用最通俗易懂的例子讲明白继承和组合的本质区别
- 2024-11-27 java继承的概念是什么?
- 2024-11-27 java基础-3-继承
- 2024-11-27 Java小白成长记:Java如何实现封装、继承、解析解构
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)