嘿嘿,举一个比较容易理解的例子。
主人公:李启铭、李刚
经典语录:我爸是李刚
例子开始:
从李启铭说的那句:我爸是李刚,是很有科学依据的,用程序设计的原理看,它符合继承和多态的面向对象编程的这2大特性。
先说一说,继承,继承就是子类可以继承父类中的属性和方法。包括私有的属性和方法,只是由于私有的方法无法访问,所以相当于没有继承到,其实是包含在子类中的。
public class 李刚{
private String 有钱;
private String 有权;
private String 飞扬跋扈;
private String 装;
.............
.....相应的get/set方法....
public void 爱喝酒(){
.......
}
............
}
以上就是李启铭老爸李刚的一些属性和方法。
public class 李启铭 extends 李刚{
private String 二;
public void 敢开车撞人(){
.........
}
}
在李启铭中我们好像看不到李刚的影子,其实李刚的优良基因都被李启铭继承到了。如果你有IDE开发程序你就能看到这些方法是在李启铭中的。像有钱、有权、飞扬跋扈等等都被他儿子有拥有!
但是青出于蓝而胜于蓝啊,李启铭还有他自己的一些特性,这些东西是李刚所不具有的,像二啊、敢开车撞人啊,他老爸是无论如何也干不出来的。
这也就是子类可以看做父类,但是也不完全相同,因为子类可能有父类不具有的属性和方法,也就是儿子可能干出父亲干不出来的事(也就是子类中特有的方法)。
好了,继承也就差不多了,来看看多态吧。
我们还是用这个例子。
多态:就是父类引用可以持有子类对象,目的是为了更加通用的编程。
还是上面那两个类:李启铭和李刚
现在我们要把这两个东西实例化了。(挺可怕的!)
先分别实例化:
李刚 aa = new 李刚();
这样我们就可以用李刚的一些属性了。
李启铭 bb = new 李启铭();
我们同样可以用李启铭中的一些方法了。
但是,李启铭就是一个官二代,如果没有李刚就什么都不是了。所以在很多时候李启铭就是他老爸李刚的形象,见李启铭如见李刚。
李刚 cc = new 李启铭();
嘿嘿,这也就当我们看到李启铭的时候,其实我们惧怕的不是李启铭这小瘪三,而是他的老爸李刚,所以我们其实就把李启铭当做了李刚。
但是李启铭和李刚还是有区别的啊,李启铭比李刚二,敢撞人,这可是他老爸干部出来的。
所以当我们这样的时候 李刚 cc = new 李启铭();
这个cc对象只能调用父类(李刚)中的方法,因为我们把它看做了父类。
如果我们想知道李启铭有多二,或是想看看他是怎么敢撞人的,我们就需要强制转换cc为 李启铭类。来访问那些方法。
来总结一下:
继承,子类继承父类中所以的属性和方法,但是对于private的属相和方法,由于这个是父类的隐私,所以子类虽然是继承了,但是没有可以访问这些属性和方法的引用,所以相当于没有继承到。很多时候,可以理解为,没有继承。
多态:就是父类引用可以持有子类对象。这时候只能调用父类中的方法,而子类中特有方法是无法访问的,因为这个时候(编译时)你把他看作父类对象的原因,但是到了运行的时候,编译器就会发现这个父类引用中原来是一个子类的对像,所以如果父类和子类中有相同的方法时,调用的会是子类中的方法,而不是父类的。
可以这么说:编译时看父类,运行时看子类。
分享到:
相关推荐
Educoder题目:Java面向对象 - 封装、继承和多态答案解析
java基础_继承封装 多态,概念的梳理,对初学者很有帮助,看一遍就清楚了
Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析
java封装 继承与多态 程序设计 类与对象
java 实验 继承与多态rectAngle 定义矩形类,用户输入矩形的长与宽,程序计算其面积和周长;派生子类正方形类,定义一个接口Printable源代码
java 继承和多态PPT教程
java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素...
Java(继承与多态)
详解java接口、继承和多态
java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java...
java继承和多态PPT教案学习.pptx
JAVA封装继承与多态PPT教案学习.pptx
Java第8章 继承和多态含源代码 Java第8章 继承和多态含源代码Java第8章 继承和多态含源代码 Java第8章 继承和多态含源代码 Java第8章 继承和多态含源代码 Java第8章 继承和多态含源代码
1继承的概念 2继承的实现 3变量隐藏与方法覆盖 4super关键字 5 子类的构造顺序 6Object类 7 final关键字
构造函数在创建对象时初始化对象 包可用package 来申明 ,可用import 来导入包 目标 理解继承及其特点 运用JAVA程序实现继承 理解多态及其特点设计 运用JAVA程序实现多态 掌握访问修饰符和方法修饰符 继承 继承的...
1、实验名称:类的继承、多态的应用 2、代码内容:学生管理类 3、【实验目的】 (1)进一步熟悉抽象类和抽象方法的定义 (2) 进一步掌握集成和多态的实现方式。
Java程序设计:第8章 继承和多态.ppt
内涵Java开发的继承和多态的教程ppt,还有课后练习,欢迎下载学习
继承和多态
Java继承与多态专题讲解,详细生动,例子丰富,适合初学者