继承(inherit)
概念:Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。
实例理解:比如可以先定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,轮胎,而又由车这个类派生出轿车和卡车两个类,则轿车和卡车都有车的属性,但它们又可以有自己的属性,即可以为轿车添加一个小后备箱,而为卡车添加一个大货箱。
Java继承特征:
(1)继承关系是传递的。若类C继承类B,类B继承类A,则类C既有从类B那里继承下来的属性与方法,也有从类A那里继承下来的属性与方法,还可以有自己新定义的属性和方法。继承来的属性和方法尽管是隐式的,但仍是类C的属性和方法。继承是在一些比较一般的类的基础上构造、建立和扩充新类的最有效的手段。
(2)继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。
(3)继承提供了软件复用功能。若类B继承类A,那么建立类B时只需要再描述与基类(类A)不同的少量特征(数据成员和成员方法)即可。这种做法能减小代码和数据的冗余度,大大增加程序的重用性。
(4)继承通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性。
(5)提供多重继承机制。从理论上说,一个类可以是多个一般类的特殊类,它可以从多个一般类中继承属性与方法,这便是多重继承。Java出于安全性和可靠性的考虑,仅支持单重继承,而通过使用接口机制来实现多重继承。
细节注意:
1、在定义一个类时,如果没有显示指定该类的父类,那么该类就会继承于java.lang.object类,object类是java中所有类的直接或间接类的父类。
例如:
Class parent{
}
Class childextends parent{
}
则parent类继承了object类,只是可以不用写出来。
2、关于继承,父类有的,子类也有;父类没有的,子类可以增加;父类有的,子类可以改变。
1)构造方法不能被继承:构造方法是用来构造对象是调用的,如果继承父类构造方法,那你new 子类名( )时究竟是构造父类还是子类呢
2)方法和属性可以被继承
3)子类的构造方法隐式的调用父类不带参数的构造方法。
4)当父类有带参数的构造方法时,子类需要使用super来显式的调用父类的构造方法,super指的是对父类的引用。
5)Super关键字必须是构造方法里的第一行语句。
3、父类的private方法和属性不能被继承
实例代码精讲:
public class Inhrience
{
public static void main(String[] args)
{
dog d = new dog();
d.eat();
cat c = new cat();
c.eat();
}
}
class animal
{
public animal()
{
System.out.println("Animal isrunning");
}
public void eat()
{
System.out.println("Animal iseatting");
}
}
class dog extends animal
{
public dog()
{
System.out.println("Dog isrunning");
super.eat();//调用父类eat方法。
}
}
class cat extends animal
{
public cat()
{
System.out.println("Cat isrunnning");
}
}
输出结果:
Animal is running//3)先调用父类Animal不带参数的构造方法
Dog is running//执行Dog中的构造方法
Animal is eatting//super.eat调用父类eat方法
Animal is eatting//继承父类eat方法
Animal is running//先调用父类Animal不带参数的构造方法
Cat is runnning//执行Cat中的构造方法
Animal is eatting//继承父类eat方法
分享到:
相关推荐
面向对象之继承.md
Tedu一段Java面向对象之继承。
在练习基本的OOP技术 (封装,继承,多态等) 上,书写一个字符串处理器(文本处理器) 要求: (1)显示文本菜单让用户选择创建不同的对象,如:矩形、正方形、圆、椭圆等 (2)如果用户选择矩形,提示用户输入矩形的中心...
9、Java面向对象之继承和多态作业题[收集].pdf
07面向对象之继承_旺旺老师JavaSE(测试版后期会更新)归类.pdf
Java编程语言,对于面向对象中继承的使用
刚开始学,需要简单题目加深对概念的理解
本文实例讲述了Python面向对象之继承原理与用法。分享给大家供大家参考,具体如下: 目标 单继承 多继承 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 继承 实现代码的重用,相同的...
关键字super/this的用法和区别;在继承中子类和父类构造方法的关系;方法重写;final关键字
在《Think in java》中有这样一句话:复用代码是Java众多...在这句话中最引人注目的是“复用代码”,尽可能的复用代码使我们程序员一直在追求的,现在我来介绍一种复用代码的方式,也是java三大特性之一---继承。
第4讲 面向对象—继承第4讲 面向对象—继承第4讲 面向对象—继承第4讲 面向对象—继承第4讲 面向对象—继承第4讲 面向对象—继承第4讲 面向对象—继承第4讲 面向对象—继承第4讲 面向对象—继承第4讲 面向对象—继承...
本文实例讲述了Python面向对象之继承和组合用法。分享给大家供大家参考,具体如下: 面向对象的组合用法 软件重用的重要方式除了继承之外还有另外一种方式,即:组合 组合指的是,在一个类中以另外一个类的对象作为...
本文研究的主要是Python面向对象之继承的相关内容,具体如下。 Python 继承 即一个派生类(derived class)继承基类(bass class)字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个...
Educoder题目:Java面向对象 - 封装、继承和多态答案解析
c++面向对象实现继承car
26_面向对象的继承反映 javase video file
Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析
主要介绍了Python面向对象之继承和多态用法,结合实例形式分析了Python面向对象程序设计中继承与多态的原理及相关操作技巧,需要的朋友可以参考下