---------------------- android培训、java培训、期待与您交流! ----------------------
基础要点
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