小翼的java开发俄罗斯方块--------继承的概念(2)
来源:互联网 发布:国内云计算服务提供商 编辑:程序博客网 时间:2024/06/05 14:19
继承:是指从大分类到小分类的过程。
子类继承父类,你有的我都有,你没有的我也有。
package test;
public class Demo3 {
public static void main(String[] args){
抢劫犯 A =new 抢劫犯("AAA");
A.doSomething();
诈骗犯 B =new 诈骗犯("BBB");
B.doSomething();
}
}
class 犯人{
protected String name;
public 犯人(String name){
this.name = name;
}
public void doSomething(){
System.out.println("我叫"+ this.name + "我是一个犯人");
}
}
class 抢劫犯 extends 犯人{
public 抢劫犯(String name){
super (name);
}
public void doSomething(){
System.out.println("我叫"+ this.name + "我是一个抢劫犯");
}
}
class 诈骗犯 extends 犯人{
public 诈骗犯(String name){
super (name);
}
public void doSomething(){
System.out.println("我叫"+ this.name + "我是一个诈骗犯");
}
}
对于如上的代码,最后会输出;我叫AAA我是一个抢劫犯
我叫BBB我是一个诈骗犯
抢劫犯 A =new 抢劫犯("AAA");可以翻译成如下:
抢劫犯 A; //翻译成:我对java说,我需要一块空间,我要放抢劫犯,我给这块空间取一个名字叫A
A = new 抢劫犯("萨达姆"); //我需要在A这块空间里面放一个抢劫犯,叫萨达姆
A.doSomething(); //调空间A里面的这个对象的方法
这里如果将上面的两句话:
抢劫犯 A =new 抢劫犯("AAA");
A.doSomething();
诈骗犯 B =new 诈骗犯("BBB");
B.doSomething();
改为:
犯人 A =new 抢劫犯("AAA");
A.doSomething();
犯人 B =new 诈骗犯("BBB");
B.doSomething();
最后输出的内容也是一样的。因为申请的一块内存本来是要放的是犯人,最后结果放的是抢劫犯,那么调用这块内存里面的对象的方法的时候,肯定就是对应的抢劫犯的行为。即new的是子类的对象,那么调的就是子类的方法。
现在如果我们要继续什么一个C和D
抢劫犯 C = A; //这样会报错,那我们就强制申明
抢劫犯 C = (抢劫犯)A; //我需要一个放抢劫犯的空间,我取名字为C,我需要把A空间里面的东西放到C里面,但是java发现A是一块专门放犯人的地方,
//因此会报错。所以我们强制申明A为抢劫犯,也就是说我向java保证,A里面肯定放的是一个抢劫犯。最后编译通过了并且输出了:我叫AAA我是一个抢 劫犯
但是
抢劫犯 D = (抢劫犯)B; //执行了D.doSomething();后,运行报错。因为已经跟java保证过了B里面会输出一个抢劫犯的行为,但是最后执行的时候才发现里面是诈骗犯。
//所以编 译通过了,运行不通过。
- 小翼的java开发俄罗斯方块--------继承的概念(2)
- 小翼的java开发俄罗斯方块(1)
- 小翼的java俄罗斯方块----总结(3)
- Java继承的概念
- 用java写的俄罗斯方块小程序
- Java子类的继承概念(一)
- Java每日小练(二)之理解“继承”的概念
- Java中继承的概念
- 基于Qt5的俄罗斯方块的开发学习(2)
- JAVA写的俄罗斯方块
- Java版的俄罗斯方块
- 俄罗斯方块java的实现
- 简单的java俄罗斯方块
- java继承的小知识点
- 简单的俄罗斯方块代码(Java)
- Java继承的概念与实现
- Java继承中概念的混淆
- Java继承的概念与实现
- Java Swing 支持 撤销和恢复功能 ctrl+z ctrl+y
- [容斥原理] zoj 3556 How Many Sets I
- Nginx配置文件详细说明
- nginx tomcat负载均衡之文件上传访问策略
- 所有编程皆为WEB编程——Qt之后的路该怎么走
- 小翼的java开发俄罗斯方块--------继承的概念(2)
- Entity Framework 中 Attribute的整理 来源网络
- iOS 遇到Could not change executable permissions on the application的情况
- 电影推荐-基于 Apache Mahout 构建社会化推荐引擎
- 两个数的交换
- bash sqlplus command not found
- Python调用Web Service(使用suds)
- centOS设为文本启动方式
- ListView中根据手机屏幕高度动态设置只显示一屏幕的item个数