关闭

黑马程序员Java基础之多态与继承、覆盖与重载

215人阅读 评论(0) 收藏 举报

---------------------- 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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:37282次
    • 积分:867
    • 等级:
    • 排名:千里之外
    • 原创:52篇
    • 转载:11篇
    • 译文:0篇
    • 评论:6条
    文章分类
    最新评论