- 浏览: 467706 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- java基础 (59)
- struts (8)
- spring (8)
- 数据库 (8)
- java 网络编程 (29)
- hibernate (3)
- JavaScript (10)
- 日志管理 (2)
- jsp (4)
- servlet (7)
- xml (4)
- ajax (2)
- web service (4)
- 算法与数据结构 (13)
- java 反射机制 (11)
- java 泛型 (3)
- java I/O (8)
- java 线程 (12)
- JavaEE (6)
- java解惑 (33)
- 工具 (5)
- MyEclipse编程实践 (1)
- OSGI (2)
- 设计模式 (9)
- 正则表达式 (0)
- EJB (3)
- Ubuntu linux (6)
- Android (1)
- web前端 (2)
- 找工作 (1)
- SCA (1)
- maven (1)
- 缓存 (1)
- json (1)
- javamail (1)
- 工作笔记 (2)
最新评论
-
霜花似雪:
博主可以分享一下源码吗?
使用maven构建web项目实例 -
王庆波-行:
很好的demo!
memcache使用实例 -
surpassno:
大写的牛逼
java可视化显示内存使用情况 -
zhulin0504:
怎么访问NetEcho.html页面呀???
applet与servlet的网络通信 -
springdata:
java多线程实例demo源代码下载:http://www.z ...
java多线程例子
继承、多态、重载、重写
继承
java中有三种类:类,抽象类,接口,他们的继承关系是:
1,类可以继承(extends)类,可以继承(extends)抽象类,可以继承(implements)接口。
2, 抽象类可以继承(extends)类,可以继承(extends)抽象类,可以继承(implements)接口。
3, 接口只能继承(extends)接口。
继承的约束:
1. 类和抽象类都只能最多继承一个类,或者最多继承一个抽象类,并且这两种情况是互
斥的,也就是说它们要么继承一个类,要么继承一个抽象类。
2. 类、抽象类和接口在继承接口时,不受数量的约束,理论上可以继承无限多个接口。
当然,对于类来说,它必须实现它所继承的所有接口中定义的全部方法。
3. 抽象类继承抽象类,或者实现接口时,可以部分、全部或者完全不实现父类抽象类的
抽象(abstract)方法,或者父类接口中定义的接口。
4. 类继承抽象类,或者实现接口时,必须全部实现父类抽象类的全部抽象(abstract)方
法,或者父类接口中定义的全部接口。
继承可以实现类的复用,除了继承,采用组合方式也可以实现类的复用。
所谓组合就是把原有类定义为新类的一个属性,通过在新类中调用原有类的方法来实现复用
多态
运行结果:1. 车型:BMW 单价:300000
2. 车型:CheryQQ 单价:20000
3. 总收入:320000
多态是在继承的基础上实现的,将一个方法调用同这个方法所属的主体(也就是对象或类)关联起来叫做绑定,分前期绑定和后期绑定两种。下面解释一下它们的定义:
1. 前期绑定:在程序运行之前进行绑定,由编译器和连接程序实现,又叫做静态绑定。
比如static方法和final方法,注意,这里也包括private方法,因为它是隐式final的。
2. 后期绑定:在运行时根据对象的类型进行绑定,由方法调用机制实现,因此又叫做动
态绑定,或者运行时绑定。除了前期绑定外的所有方法都属于后期绑定。
多态就是在后期绑定这种机制上实现的。
重载、重写(overloading,overriding)
重写,英文名是overriding,是指在继承情况下,子类中定义了与其基类中方法具有相同
型构的新方法,就叫做子类把基类的方法重写了。这是实现多态必须的步骤。
重载,英文名是overloading,是指在同一个类中定义了一个以上具有相同名称,但是型构
不同的方法。在同一个类中,是不允许定义多于一个的具有相同型构的方法的。
继承
java中有三种类:类,抽象类,接口,他们的继承关系是:
1,类可以继承(extends)类,可以继承(extends)抽象类,可以继承(implements)接口。
2, 抽象类可以继承(extends)类,可以继承(extends)抽象类,可以继承(implements)接口。
3, 接口只能继承(extends)接口。
继承的约束:
1. 类和抽象类都只能最多继承一个类,或者最多继承一个抽象类,并且这两种情况是互
斥的,也就是说它们要么继承一个类,要么继承一个抽象类。
2. 类、抽象类和接口在继承接口时,不受数量的约束,理论上可以继承无限多个接口。
当然,对于类来说,它必须实现它所继承的所有接口中定义的全部方法。
3. 抽象类继承抽象类,或者实现接口时,可以部分、全部或者完全不实现父类抽象类的
抽象(abstract)方法,或者父类接口中定义的接口。
4. 类继承抽象类,或者实现接口时,必须全部实现父类抽象类的全部抽象(abstract)方
法,或者父类接口中定义的全部接口。
继承可以实现类的复用,除了继承,采用组合方式也可以实现类的复用。
所谓组合就是把原有类定义为新类的一个属性,通过在新类中调用原有类的方法来实现复用
public class Sub { private Parent p = new Parent(); public void doSomething() { // 复用Parent类的方法 p.method(); // other code } } class Parent { public void method() { // do something here } }
多态
//汽车接口 interface Car { // 汽车名称 String getName(); // 获得汽车售价 int getPrice(); } // 宝马 class BMW implements Car { public String getName() { return "BMW"; } public int getPrice() { return 300000; } } // 奇瑞QQ class CheryQQ implements Car { public String getName() { return "CheryQQ"; } public int getPrice() { return 20000; } } // 汽车出售店 public class CarShop { // 售车收入 private int money = 0; // 卖出一部车 public void sellCar(Car car) { System.out.println("车型:" + car.getName() + " 单价:" + car.getPrice()); // 增加卖出车售价的收入 money += car.getPrice(); } // 售车总收入 public int getMoney() { return money; } public static void main(String[] args) { CarShop aShop = new CarShop(); // 卖出一辆宝马 aShop.sellCar(new BMW()); // 卖出一辆奇瑞QQ aShop.sellCar(new CheryQQ()); System.out.println("总收入:" + aShop.getMoney()); } }
运行结果:1. 车型:BMW 单价:300000
2. 车型:CheryQQ 单价:20000
3. 总收入:320000
多态是在继承的基础上实现的,将一个方法调用同这个方法所属的主体(也就是对象或类)关联起来叫做绑定,分前期绑定和后期绑定两种。下面解释一下它们的定义:
1. 前期绑定:在程序运行之前进行绑定,由编译器和连接程序实现,又叫做静态绑定。
比如static方法和final方法,注意,这里也包括private方法,因为它是隐式final的。
2. 后期绑定:在运行时根据对象的类型进行绑定,由方法调用机制实现,因此又叫做动
态绑定,或者运行时绑定。除了前期绑定外的所有方法都属于后期绑定。
多态就是在后期绑定这种机制上实现的。
重载、重写(overloading,overriding)
重写,英文名是overriding,是指在继承情况下,子类中定义了与其基类中方法具有相同
型构的新方法,就叫做子类把基类的方法重写了。这是实现多态必须的步骤。
重载,英文名是overloading,是指在同一个类中定义了一个以上具有相同名称,但是型构
不同的方法。在同一个类中,是不允许定义多于一个的具有相同型构的方法的。
发表评论
-
数据库及struts面试题
2011-06-22 11:07 1059数据库部分 Q: What is SQL? ... -
EJB面试题
2011-06-22 10:54 1125Q: What are the different kinds ... -
java中的servlet面试题
2011-06-22 10:43 1110Q: Explain the life cycle metho ... -
java中JSP的面试题
2011-06-22 10:22 1543Q: What is a output comment? (可 ... -
java中的集合面试题
2011-06-22 10:12 720Q: What is the Collections API? ... -
彻底搞清楚java的内部类
2011-06-15 10:47 1507内部类允许在一个类中 ... -
细说java(java中的浮点数十六进制表示)
2011-06-12 16:48 3566java中浮点数不能用八进制表示,但可以用十六进制表示,只能用 ... -
SCJP试题
2011-06-09 16:14 1177package scjp; public class T ... -
java面试题解惑 之 多线程
2011-06-02 17:24 9921,多线程 线程或者说 ... -
java面试题解惑 之变量初始顺序,变量覆盖,字符串池,final,finally区别
2011-06-02 16:26 7991,变量初始化顺序 package com.qdu.sun; ... -
java解惑(Map的使用,静态导入方法,线程中断interrupted与线程死锁)
2011-05-17 12:38 1396Map的使用 package other; import ... -
java 继承的一个问题(想不明白)
2011-04-13 17:03 915java中的继承问题,以为是学会了java,结果最简单的一个j ... -
java解惑(谜题76。。)
2011-03-09 11:22 1221谜题76:乒乓public class PingPong { ... -
java解惑(谜题60,65)
2011-03-08 15:52 918一行以毙之 1,编写一个 ... -
java解惑(谜题66。。。)
2011-02-28 20:54 955谜题66:一件私事 class Base{ public ... -
java解惑(谜题61。。。)
2011-02-28 20:17 916谜题61:日期游戏 import java.util.Cal ... -
java解惑(谜题56到。。库之谜)
2011-02-28 19:41 859谜题56:大问题 import jav ... -
java解惑(谜题49。。)
2011-02-27 10:52 954谜题49:比生命更大 import java.util.Cal ... -
java解惑(谜题41到谜题)
2011-02-27 10:18 921谜题41:域和流 下面的 ... -
谜题36-谜题
2011-02-25 10:55 901谜题36:优柔寡断 public ...
相关推荐
**1.9 JAVA面试题解惑系列(九)——继承、多态、重载和重写** - **知识点**:详解面向对象编程的三大特性:继承(类间关系)、多态(行为多样性)、重载(方法签名不同)、重写(方法签名相同,但实现不同),以及...
.63 1.9 JAVA面试题解惑系列(九)——继承、多态、重载和重写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80 1.10 JAVA面试题解惑系列(十)——话说多线程 . . . . . . . . . . . . . . . ...
来自网络,主要包括以下内容:1、类初始化的顺序;2、到底创建了几个String对象;3、变量(属性)的覆盖;...9.继承,多态,重载,重写;10.多线程;11.运算符总结。 适合将要笔试面试Java的朋友参考。
【JAVA面试题解惑系列】是一系列专门针对Java开发者面试准备的文章集合,涵盖了多个核心Java概念和面试常问问题。作者臧圩人在JavaEye社区分享了这个系列,旨在帮助求职者理解和解答面试中可能出现的疑问。 1. **类...
“JAVA面试题解惑系列(九)——继承、多态、重载和重写”是面向对象编程的基础,继承允许类之间的层次结构,多态提供了一种“一个接口,多种实现”的灵活性,而重载和重写则涉及到方法签名和行为的差异。...
- **继承、多态、重载和重写**:继承允许一个类(子类)继承另一个类(父类)的属性和方法;多态是子类对象可以替换父类对象的能力;重载发生在同一类中,方法名相同但参数列表不同;重写发生在子类中,子类覆盖父类...
给定文件的内容主要涉及Java开发中常见的面试题解惑系列,其中涵盖了类的初始化顺序、String对象的创建、变量覆盖、final关键字的用法、引用传递以及字符串处理等重要的Java知识点。 首先,关于类的初始化顺序,...