JAVA面向对象-----继承
类和类之间的常见关系。
既然继承是描述类和类之间的关系,就需要先来了解类和类之间的常见关系
现实生活的整体与部分
举例说明
现实生活
学生 是人
狗 是动物
球队 包含 球员 整体与部分的关系,部分可以删除和增加
笔记本包含 cpu 整体与部分的关系,部分不可以删除和增加
航母编队 包含(航母 护卫舰 驱逐舰 舰载机 核潜艇)
java中的类关系
1is a 关系 (学生是人)
2has a 整体与部分
class Person{
String name;
int age;
Address add;
Person(){
}
Person(String name,int age,Address add){
this.name=name;
this.age=age;
this.add=add;
}
void speak(){
System.out.println("姓名:"+name+" 年龄:"+age+" "+add.print());
}
}
class Address{
String country;
String city;
String street;
Address(){
}
Address(String country,String city,String street){
this.country=country;
this.city=city;
this.street=street;
}
String print(){
return "地址:"+country+" "+"城市:"+city+" 街道;"+street;
}
}
class Demo3{
public static void main(String[] args){
Address add=new Address("中国","广州","6路");
Person p=new Person("jack",27,add);
p.speak();
System.out.println();
}
}
继承
1:描述一个学生类
姓名年龄学号属性,学习的方法
2:描述一个工人类
姓名年龄工号属性,工作的方法
3:描述一个人类
1:姓名年龄属性,说话的方法。
发现学生类和人类天生有着联系,学生和工人都是人。所以人有的属性和行为学生和工人都会有。出现类代码重复
class Person {
String name;
int age;
// 静态变量(类变量)对象和对象之间的代码重复使用静态变量
static String country = "CN";
Person() {
}
void speak() {
System.out.println(name + ":哈哈,我是人!!!");
}
}
// 让学生类和人类产生关系,发现学生is a 人,就可以使用继承
class Student {
String name;
int age;
Student() {
}
void study() {
System.out.println("姓名:" + name + "年纪:" + age + ":好好学习");
}
}
class Worker {
String name;
int age;
void work() {
System.out.println(name + ":好好工作,好好挣钱。");
}
}
class Demo1 {
public static void main(String[] args) {
Student s = new Student();
s.name = "jack";
s.age = 20;
s.study();
Worker w = new Worker();
w.name = "rose";
w.work();
}
}
问题:
1:如果没有继承,出现类和类的关系无法描述
2:如果没有继承,类和类之间有关系会出现类和类的描述代码的重复。
继承特点
描述类和类之间的关系
降低类和类之间的重复代码
降低对象和对象之间的代码重复使用静态变量
降低类和类之间的代码重复使用就继承
【正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之气,日后必有一番作为!下面有个“顶”字,你就顺手把它点了吧(要先登录CSDN账号哦 )】
—–乐于分享,共同进步!
—–更多文章请看:http://blog.csdn.net/duruiqi_fx
JAVA面向对象-----继承的更多相关文章
- Java面向对象 继承(下)
Java面向对象 继承(下) 知识概要: (1)抽象类 1.1 抽象类概述 1.2 抽象类的特点 ...
- Java面向对象 继承(上)
Java面向对象 继承 知识概要: (1)继承的概述 (2)继承的特点 (3)super关键字 (4)函数覆盖 (5) 子类的实例化过程 (6) final关键字 (1)继承 ...
- Java面向对象㈡ -- 继承与多态
Java的继承是通过extends和implement来实现的,Java不支持多继承,但是Java支持多层继承以及多实现(接口).Java继承有一个关键字super是用来指向父类.Java继承衍生出覆 ...
- java面向对象--继承与多态
可以为一个变异单元中的每个类创建一个main方法,只有命令行所调用的那个类的main方法才会被调用,这样方便进行单元测试.继承时,一般将所有的数据成员都指定为private,将所有的方法指定为publ ...
- Java面向对象—继承
概述: 1.多个类相同的属性和功能抽取成另一个类, 让具有特有功能的类继承这个类. 2.通过 extends 关键字可以实现类与类的继承 格式: class 子类名 extends 父类名 {} 特点 ...
- java 面向对象 — 继承
继承中的构造方法,先执行父类中的构造方法,然后执行子类中的构造方法 继承中的属性,最后执行的属性 覆盖前面的属性 因为是开辟了 两个内存空间,所以相比较是不同的. 如果想比较两个对象的值是否相同的话, ...
- Java面向对象----继承概念,super关键字
继承概念: 继承需要符合的关系 is-a , 父类通用更抽象,子类更特殊更具体 类之间的关系 继承体现 组合体现 实现接口体现 继承的意义 代码重用 体现不同抽象层次 extends关键字 Sup ...
- java面向对象三大特性之继承
通过重用已经测试并验证通过的代码,怎样才减少开发工作,所有开发团队都在为一问题而努力.一个久经考验的方法是通过有效地使用Java继承优化应用程序开发. 继承的从某种意义上讲,继承的短暂美就如同宇宙中所 ...
- Java面向对象(二、继承)
Java 继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法 ...
随机推荐
- 以太坊如何估计计算gas?
以太坊如何估计估算计算gas?Etherscan上transaction info中有个gas used by txn,结果跟remix给的结果以及geth中getTransactionReceipt ...
- PyQT5 helloworld教程(转载)
转载节选自该博客地址:http://blog.csdn.net/u013401853/article/details/54581512,博主的步骤写的很详细,感谢! QT Creator安装 因为我们 ...
- [HNOI2011]赛车游戏
题目描述 名歌手LAALA最近迷上了一款赛车游戏,游戏中开车的玩家在不同的路段需要选择不同的速度,使得自己在最短的时间内到达终点.开始游戏时,车内的初始油量为f,所以游戏的关键是如何在速度和耗油量之间 ...
- HDU 3094 A tree game
Problem Description Alice and Bob want to play an interesting game on a tree.Given is a tree on N ve ...
- [SCOI2012]滑雪与时间胶囊
题目描述 a180285非常喜欢滑雪.他来到一座雪山,这里分布着MMM条供滑行的轨道和NNN个轨道之间的交点(同时也是景点),而且每个景点都有一编号iii(1≤i≤N1 \le i \le N1≤i≤ ...
- ●Joyoi Dotp 驱逐猪猡
题链: http://www.joyoi.cn/problem/tyvj-2610题解: 期望dp,高斯消元 对于每一种到达i点的方案,都存在一个概率p, 令dp[i]表示到达i点的期望次数,那么容易 ...
- 51 nod 1495 中国好区间
1495 中国好区间 基准时间限制:0.7 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 阿尔法在玩一个游戏,阿尔法给出了一个长度为n的序列,他认为,一段好的区间,它的长度是& ...
- 【BZOJ1500】【Noi2005】维修数列
题意原题很清楚了. 解题思路:裸的平衡树操作,注意动态开点即可. 细节还是比较多的,具体参见代码吧... #include <stdio.h> #include <algorithm ...
- [ HOJ 2713]Matrix1[网络流] 最大点权独立集问题
题目大意: 一个 N*M 的网格,每个单元都有一块价值 Cij 的宝石.问最多能取多少价值的宝石且任意两块宝石不相邻.(1 <= N, M <= 50, 0 <= Cij <= ...
- poj 1367 robot(搜索)
题意:给你一个图,求起点 到 终点的最少时间 每次有两种选择①:往前走1~3步 ②原地选择90° 费时皆是1s 图中1为障碍物,而且不能出边界.还要考虑机器人的直径 ...