黑马程序员Java基础之多态与继承、覆盖与重载
2012-03-28 11:41
309 查看
---------------------- android培训、java培训、期待与您交流! ----------------------
基础要点
1、 多态(polymophsim)与继承(Inheritance)是面向对象程序设计的特征
2、 覆盖(overriding)与重载(overloading)是对继承而言的,他们实现了多态(polymophsim)
3、 装饰模式()和多态(poylmophsim)类似用于拓展类的功能,但又有不同,他是23种设计模式的一种
4、 接口与以上几种都是同级别的。Java中子类只有一个父类,而一个父类的方法有限所以就有了接口。实现了接口子类的功能就会加强。这里大概也有提高代码复用率的考量吧。
举个例子如定义一个人类,包含姓名、性别2个属性,再定义一个学生类,学生也是人,除了包含人的属性外,还包含学分属性。使学生继承人。在主类中生成一个学生对象和一个人对象,并显示信息
总结:
感受:这一节已近升华到模拟现实世界了。程序员真伟大,他们生活在现实世界,却创建了另一个虚拟世界。佛说:“一花一草一世界”,冷兵器时代过去了,热兵器时代过去了,那在当下物语横流的时代,程序员也必将创造一片精神的净土,我同样很希望和你们一道站在一起做创世界的人。
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima
基础要点
1、 多态(polymophsim)与继承(Inheritance)是面向对象程序设计的特征
2、 覆盖(overriding)与重载(overloading)是对继承而言的,他们实现了多态(polymophsim)
3、 装饰模式()和多态(poylmophsim)类似用于拓展类的功能,但又有不同,他是23种设计模式的一种
4、 接口与以上几种都是同级别的。Java中子类只有一个父类,而一个父类的方法有限所以就有了接口。实现了接口子类的功能就会加强。这里大概也有提高代码复用率的考量吧。
举个例子如定义一个人类,包含姓名、性别2个属性,再定义一个学生类,学生也是人,除了包含人的属性外,还包含学分属性。使学生继承人。在主类中生成一个学生对象和一个人对象,并显示信息
/**创建一个Person类包含name和age属性 * 有自己的构造函数 * 有get()和set()方法 */ public class Person { private String name; private int age; //Person的构造函数,有带两个参数的,有带一个参数的,还有不带参数的 public Person(String name,int age){ this.set(name); this.set(age); } public Person(String name){ this(name,1); } public Person(){ this("姓名未知",0); } public Person(Person p){ this(p.name,p.age); } //set方法用于设置成员变量 public void set(String name){ this.name = name; } public void set(int age){ this.age = age; } public void set(String name,int age){ this.set(name); this.set(age); } public void set(Person p){ this.set(p.name); this.set(p.age); } //get方法用于取得成员变量 public String getName(){ return this.name; } public int getAge(){ return this.age; } }
package horse; /**定义一个学生类, 继承Person类 *除有Person属性(成员变量)name和age外还需有score, *可以通过构造函数进行初始化,另要实现自己的特有方法获取分数 */ public class Student extends Person { private int score; public Student(String name,int age,int score){ super(name,age); this.score = score; } public int getScore(){ return this.score; } public static void main(String[] args) { //用于创建一个对象输出查看结果 Student st = new Student("love",21,50); Person p = new Person("love_horse",20); System.out.println(st); System.out.println(p); } }
总结:
名称 | final | static |
修饰变量 | 常量 | 类常量,保存在该类内存区域的共享单元,独立于类中对象,可直接访问(不会创建实例直接使用) |
修饰方法 | 最终方法不能被子类覆盖 | 不能被子类修改或重新定义,通过类名可直接调用 |
修饰类 | 该类不能被继承 | —— |
静态块 | —— | 用于给类初始化,先于其他方法执行 |
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima
相关文章推荐
- Java方法继承、方法重载、方法覆盖,多态和super关键字小总结
- Java中覆盖、继承、重载和多态的详细解说与this和super的用法
- 黑马程序员---java基础之面向对象(一)三大特征(封装,继承,多态)
- java 继承 多态(override->重写(=覆盖)、overload->重载、polymorphism -> 多态)
- [Java复习]重载、覆盖、继承、多态
- 黑马程序员——Java基础:继承、final关键字、抽象、接口、多态
- 黑马程序员——Java---类继承-覆盖-重载
- 黑马程序员-java基础(四)-面向对象(封装、继承、多态)
- 黑马程序员-17-java基础-面向对象(3)-继承、抽象类、接口与多态
- Java方法继承、方法重载、方法覆盖,多态和super关键字小总结
- 黑马程序员—————Java基础----继承、多态、抽象、接口
- 黑马程序员_JAVA基础1_继承,多态
- <Head first Java>继承与多态_重载与覆盖
- 黑马程序员——java基础——继承、抽象类、接口、多态
- 黑马程序员——Java基础---深入理解面向对象(封装继承和多态)
- 黑马程序员--Java基础加强--02.代码简化 书写规律I_原始数据类型【重载】【多态】【泛型】【泛型限定】【个人总结】
- java(或C++)继承、重载、覆盖、多态
- 黑马程序员——Java基础——面向对象(继承、接口、多态)
- 黑马程序员_毕向东JAVA基础_面向对象(封装&继承&多态)
- Java基础温习 (6)重载,重写以及继承,多态的区别