类与对象的关系及继承问题

一.现实中的类
我们在现实中总会在夏天的时候被蚊子所苦恼,一看见蚊子就想消灭它,免着被叮出包。而当我们看见蝴蝶的时候就没有这样的感觉。这是为什么呢?在日常的生活中,我们会习惯性的将事物归纳分类,以便我们在遇到相似的事物的时候会在以往的生活中寻找经验来应付这一类的事物。归类是我们生活的智慧,也是我们分辨不同事物的方法。不同的类具有不同的特征,比如哺乳动物和昆虫就有明显的特征上的不同。
二.Java中的类
在Java 中同样吸收了我们生活的习惯,也有类的这个概念。在Java中,类是属于引用数据类型。在Java中分为基本数据类型与引用数据类型。基本数据类型有:byte- >short- >char- >int- >long- >float- >double,是Java程序里已经定义好的规则。引用类型是程序员在程序编写时定义的。在Java 中我们可以将同一类的事物定义成一个类,这个类具备哪些方法,具备哪些属性,这样碰到一类问题的时候我们就可以调用这个预先写好的类,去处理这个问题,而不用写重复的代码。比如,我们要实现一个汽车的功能,我们就可以把汽车写成一个类,这个类中包含,汽车的运动,汽车的长度,汽车的颜色,品牌等等。当我们想要实现几个汽车的时候就可以调用这个类,可以减少重复的书写。类也可以看作我们人生经历过的事情,将它归纳总结后的经验,遇到相似的事情的时候我们可以拿出来解决这个事情。
三.Java中类与对象的关系
同样以我们之前提到的汽车的例子来解释类与对象的区别。我们只是定义了一个汽车的类,它中间有各种属性,有各种功能。但这个类只是一个泛指,它没有具体的指向哪一个汽车。我们将体指向的这个具体的那一个汽车叫做对象。如何用类表示现实中的一个对象呢?也可以理解成如何在电脑中表示一个汽车呢?我们需要将这个汽车的各种信息都输入到电脑中,每一个个体都是存在差异的,只要把他拥有的信息都输入到电脑中,这个就是一个独一无二的数据了,和其它个体不完全相同。而类的对象化,就是将我们在类中定义的那些特征赋予具体的数值。这样就具象化了。拿一台我们总见到的五菱宏光为例,这车总能出现在大家的视野里,拿这个大家都熟悉的车举例子,方便大家理解。这个车的类中我们有汽车的颜色,车型,车长,牌照等这些属性,我们要生成一辆具体的五菱宏光的时候,首先是调用这个类,然后我们就要把这些类中的属性都填上。这样一个具体五菱宏光你就可以在脑海中想象出来了。
代码实现:
定义一个类:

public class car {
	public String band ;
	public String color;
	public int carlong;
	public int maxspeed;
	public String licensenumber;
	public void information() {
		System.out.println("品牌:"+band);
		System.out.println("颜色:"+color);
		System.out.println("车长:"+carlong);
		System.out.println("最高时速:"+maxspeed);
		System.out.println("车牌:"+licensenumber);
	}
}

生成五菱宏光对象:

	public static void main(String[] args) {
		car hong = new car();
		hong.band = "wuling";
		hong.carlong = 5;
		hong.color = "blue";
		hong.licensenumber = "汉31542";
		hong.maxspeed = 200;
		hong.information();
	}

输出:
品牌:wuling
颜色:blue
车长:5
最高时速:200
车牌:汉31542

四.类中的继承
我们可以看见我们已经定义完了一个类,也生成了一个对象。但是我们知道,在我们生活中我们定义一个大类的时候后,这个类往往会有一些满足大类属性基础上的一些分支。比如,车这个类,我们定义好了以后,我们发现,车中还有大货车这个子类,它同样有车这类的属性,但这个类中又多出一个装货的功能。这个时候就用到了类中很重要的一个功能继承,它可以继承父类中的所有属性,也可以对继承来的属性进行修改。我们定义一个货车的类,它继承了汽车这个父类。我们只需要再这个类中写下我们要多添加的功能就行。父类的功能如果没有需要修改的就可以不用重复的书写,这样就减少了代码的书写量。

public class huoche extends car {
	public int maxweight;
	public void information() {
		super.information();
		System.out.println("最大载重:"+maxweight);
	}
}
	public static void main(String[] args) {
		huoche hong = new huoche();
		hong.band = "wuling";
		hong.carlong = 5;
		hong.color = "blue";
		hong.licensenumber = "汉31542";
		hong.maxspeed = 200;
		hong.maxweight = 1000;
		hong.information();
	}

输出:
品牌:wuling
颜色:blue
车长:5
最高时速:200
车牌:汉31542
最大载重:1000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值