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

原创 2012年03月28日 11:41:22

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

java中的继承和多态以及重载和重写

继承(inheritance) 简单的说,继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(下面会讲到,这种方式叫重写)的方式,产生一个新的类型。继承是面向对象的三个基本特征--封...
  • ls5718
  • ls5718
  • 2016年06月02日 10:19
  • 2867

c++继承中的函数覆盖规则

问题:如果如图的继承方式,类B会不会自己复制一个和类A一模一样的test函数呢?   测试数据:   #include usingnamespace std; class A { ...
  • u013009575
  • u013009575
  • 2014年02月12日 09:47
  • 1074

Java 继承与多态实验

实验讲义   上机题目一:试以Point类为例,尝试对Object类的clone()方法和equal()方法进行覆盖。 上机题目二:现在输入n个数字,以逗号分开、放入一个字符串中,然后按升序和降序排序...
  • u014253173
  • u014253173
  • 2014年04月12日 11:28
  • 1689

黑马程序员——Java基础——继承之多态(三)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 多态: package cn.fuxi.jiekou; /** * 多态:某一类事...
  • maidou51
  • maidou51
  • 2015年11月18日 15:23
  • 159

黑马程序员——JAVA基础之多态与Object

------- android培训、java培训、期待与您交流! ----------
  • run_wind
  • run_wind
  • 2014年11月24日 15:57
  • 421

黑马程序员—JAVA基础之多态

多态 多态是java面向对象中一个重要的概念,它也是事物存在的多种体现形态。比如一个简单的例子,在动物这个大的类中,包含有许多不同的物种,我们可以称一只猫为猫,我们也可以说它是动物,这是很显然的...
  • yxqcz
  • yxqcz
  • 2014年04月24日 22:19
  • 268

黑马程序员----Java基础之多态

------- android培训、java培训、期待与您交流! ---------- Java基础之多态 继承 1,继承的特点: (1),提高了代码的复用性。 (2),让类与类之间产...
  • Trone0810
  • Trone0810
  • 2014年03月10日 19:11
  • 532

黑马程序员--java基础复习之多态与Object及匿名内部类

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 多态 定义:某一类事物的多种存在形态 例如:动物中的猫、狗。猫这个对象对应的类型是猫...
  • menghanshi
  • menghanshi
  • 2015年03月19日 22:01
  • 415

黑马程序员—【Java基础篇】之多态、内部类、异常及包

------- android培训、java培训、期待与您交流! ---------     大家好,这篇我们介绍和学习多态、内部类、异常和包的4大块知识点。 一、多态 1、定义     某一类...
  • WL8721
  • WL8721
  • 2015年04月22日 16:59
  • 514

黑马程序员——Java 基础 面向对象之多态 (复习)

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------ 一、理解多态 多态:可以理解为事物存在的多种体现形态。 例如:人这类事...
  • qiancs06
  • qiancs06
  • 2015年08月26日 08:39
  • 237
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员Java基础之多态与继承、覆盖与重载
举报原因:
原因补充:

(最多只允许输入30个字)