java基础:类的继承_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java基础:类的继承

java基础:类的继承

 2014/10/9 0:17:31  lisijie0616  程序员俱乐部  我要评论(0)
  • 摘要:一、引言:若我们定义了一个“学生”类,现在又想定义一个“大学生”类,而大学生与学生有重合的属性和方法,比如说都有姓名、学号、学分、学习方法等,那么我们在定义“大学生”类时,需要再重复编写一遍“学生”类里面已有的代码吗?这显然是不科学的,这时候我们就需要用到类的继承。二、定义:在已有类的基础上建立新的类,而不需要把已有类的内容重新写一遍,这就叫做类的继承。已有的类叫做父类,在此基础上建立的类叫做子类。在上面的例子中,学生就是父类,大学生就是子类。代码关键字:extend三、继承的内容
  • 标签:Java 继承

一、引言:

? ? ? ?若我们定义了一个“学生”类,现在又想定义一个“大学生”类,而大学生与学生有重合的属性和方法,比如说都有姓名、学号、学分、学习方法等,那么我们在定义“大学生”类时,需要再重复编写一遍“学生”类里面已有的代码吗?这显然是不科学的,这时候我们就需要用到类的继承。

?

二、定义:

? ? ? ?在已有类的基础上建立新的类,而不需要把已有类的内容重新写一遍,这就叫做类的继承。已有的类叫做父类,在此基础上建立的类叫做子类。在上面的例子中,学生就是父类,大学生就是子类。

? ? ? ?代码关键字:extend

?

三、继承的内容:

? ? ? ?那么子类从父类中继承了一些什么呢?这一点需要分情况讨论:

? ? ? ?对于private的属性、方法,子类能够继承到,但是不能够访问。

? ? ? ?对于非private属性、方法,子类能够继承并且访问。

? ? ? ?例如:

class="java">//定义父类
public class Students {
        private String name;

        public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

        public void study(){
		System.out.println("学生名字是"+name);
        }     
}

?

?

?

//定义子类
public class UNstudents extends Students {
}

?

?

?

//定义管理类
public class Manager {
public static void main(String[] args) {
		UNstudents un=new UNstudents();
	 	Students stu=new Students();
		stu.setName("张三");		
 
                un.study();
                }
}

?

?

运行结果为:

?

学生名字是null

?

?

从结果我们可以看出,子类继承并访问到了父类的public学习方法study,但是没有访问到父类的private姓名张三,实际上它还是继承了父类的姓名的,只不过private属性只能自己的类访问,其他的类都不可以访问。

△.这里我们若要显示姓名,只需要把管理类的stu.setName("张三")改成UN.setName("张三")即可。

?

四、方法的重写

? ? ? 儿子能从父亲身上继承很多东西,但他不可能完完全全和父亲一样,那不就成了克隆了,所以儿子也会有自己的个性。

? ? ? 当子类继承父类之后,如果要加上自己特有的方法、属性,就需要用到重写。

? ? ? 例如:

?

//定义父类
public class Students {
        public String name;

        public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

        public void study(){
		System.out.println("学生名字是"+name);
        }     
}

?

?

//定义子类
public class UNstudents extends Students {
         public void study(){
         System.out.println(name+"是大学生,需要考四级");
         }
}

?

//定义管理类
public class Manager {
public static void main(String[] args) {
		UNstudents un=new UNstudents();
		un.setName("张三");		
 
                un.study();
                }
}

?

运行结果为:

张三是大学生,需要考四级

?

从结果我们可以看出,我们在子类中重新定义了study这个方法,输出结果也为子类的study方法,即是子类的特色方法,这就是方法的重写。

?

△.重载与重写的区别:

? ? ?重写是发生在继承体系下的,子类针对父类的方法、属性进行的重写。也就是发生在不同的类下面。

? ? ?重载是发生在本类下面的,针对同一个方法的方法名一致),只有形参的个数、顺序、类型的区别。 ?

?

?

?

?

发表评论
用户名: 匿名