JAVA子类与继承

这个学期返校了,一直在学校忙别的东西(打游戏),没什么时间写博客,现在放假,又开始闲起来了,把 java的东西整理整理

==============================================================================
       在类的声明中,通过使用关键字extends来定义一个类的子类。
       当我们准备编写一个类的时候,发现某个类有我们所需要的成员变量和方法,如果我们想复用这个类中的成员变量和方法,即在所编写的类中不用声明成员变量就相当于有了这个成员变量,不用定义方法就相当于有了这个方法,那么我们可以将编写的类定义为这个类的子类,子类可以让我们不必一切从头做起,下面将举几个例子:
       首先,我们写出People类:

public class People {
	int age=0,leg=2,hand=2;
	void showPeopleMess() {
		System.out.printf("%d岁,%d只脚,%d只手",age,leg,hand);
		System.out.println();
	}
}

       我们想要写出一个Student类,student类要求有age,leg,hand,number变量,有showPeopleMess方法和tellNumber方法。即在People类的基础上,再添加一个number变量和tellNumber方法
       我们可以用两种办法实现这个类,一是老老实实的把所有变量和所有方法全部写一遍,二是可以用extends写一个子类,直接写新增的方法和变量。
       这里,我们写一个Student类,Student是People的子类

public class Student extends People {
	int number;
	void tellNumber() {
		System.out.println("学号为"+number);
	}
}

测试类:

public class Test {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student zhang= new Student();
		System.out.println(zhang.age+"岁");
		System.out.println(zhang.leg+"条腿");
		System.out.println(zhang.hand+"只手");
		zhang.age=18;
		zhang.showPeopleMess();
		zhang.number=1;
		zhang.tellNumber();
	}
}
//程序输出结果为
//           0岁
//           2条腿
//           2只手
//           18岁,2只脚,2只手
//           学号为1

       Student类只定义了number,tellNumber方法。继承了People类,那些继承的变量和方法的定义都不要写出来,一个Student对象一共具有age,number,leg,hand四个变量,showPeopleMess,tellNumber两个方法。如果没有子类这个概念,想要实现上述功能,必须要把所有代码全部写出来。但是有了子类,我们只需要定义子类,再加上子类独有的变量和方法就行了。这也符合了面向对象的编程思想。这里Student类独有的变量是number,独有的方法是tellNumber。所以只需要添加number变量,tellNumber方法就行了。


       我们再写出一个UniverStudent类,UniverStudent是Student的子类。

public class UniverStudent extends Student{
	void speak() {
		System.out.println("我是大学生");
	}
}

       这里,我们分析UniverStudent有哪些变量和方法。
       在分析一个子类对象时,除了要看子类本身的代码,还要查看父类的代码,UniverStudent继承Student,Student继承People。
       People类是祖先类,我们先从祖先类开始分析,People对象有age,leg,hand三个变量,showPeopleMess一个方法。
       Student对象多了一个number变量,一个 tellNumber方法,有age,leg,hand,number变量,showPeopleMess,tellNumber方法。
       UniverStudent相比Student多了一个Speak方法,所以UniverStudent有age,leg,hand,number四个变量,showPeopleMess,tellNumber,speak三个方法
测试类:

public class Test {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		UniverStudent wang=new UniverStudent();
		System.out.println(wang.age+"岁");
		System.out.println(wang.leg+"条腿");
		System.out.println(wang.hand+"只手");
		wang.age=18;
		wang.showPeopleMess();
		wang.number=1;
		wang.tellNumber();
		wang.speak();
	}
}
//程序输出结果为
//             0岁
//             2条腿
//             2只手
//             18岁,2只脚,2只手
//             学号为1
//             我是大学生
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值