类和类之间的常见关系。

既然继承是描述类和类之间的关系,就需要先来了解类和类之间的常见关系

现实生活的整体与部分

举例说明

现实生活

学生 是人

狗 是动物

球队 包含 球员 整体与部分的关系,部分可以删除和增加

笔记本包含 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面向对象-----继承的更多相关文章

  1. Java面向对象 继承(下)

     Java面向对象   继承(下) 知识概要:               (1)抽象类 1.1 抽象类概述                            1.2 抽象类的特点       ...

  2. Java面向对象 继承(上)

       Java面向对象 继承 知识概要:         (1)继承的概述 (2)继承的特点 (3)super关键字 (4)函数覆盖 (5) 子类的实例化过程 (6) final关键字 (1)继承 ...

  3. Java面向对象㈡ -- 继承与多态

    Java的继承是通过extends和implement来实现的,Java不支持多继承,但是Java支持多层继承以及多实现(接口).Java继承有一个关键字super是用来指向父类.Java继承衍生出覆 ...

  4. java面向对象--继承与多态

    可以为一个变异单元中的每个类创建一个main方法,只有命令行所调用的那个类的main方法才会被调用,这样方便进行单元测试.继承时,一般将所有的数据成员都指定为private,将所有的方法指定为publ ...

  5. Java面向对象—继承

    概述: 1.多个类相同的属性和功能抽取成另一个类, 让具有特有功能的类继承这个类. 2.通过 extends 关键字可以实现类与类的继承 格式: class 子类名 extends 父类名 {} 特点 ...

  6. java 面向对象 — 继承

    继承中的构造方法,先执行父类中的构造方法,然后执行子类中的构造方法 继承中的属性,最后执行的属性 覆盖前面的属性 因为是开辟了 两个内存空间,所以相比较是不同的. 如果想比较两个对象的值是否相同的话, ...

  7. Java面向对象----继承概念,super关键字

    继承概念: 继承需要符合的关系  is-a  , 父类通用更抽象,子类更特殊更具体 类之间的关系 继承体现 组合体现 实现接口体现 继承的意义 代码重用 体现不同抽象层次 extends关键字 Sup ...

  8. java面向对象三大特性之继承

    通过重用已经测试并验证通过的代码,怎样才减少开发工作,所有开发团队都在为一问题而努力.一个久经考验的方法是通过有效地使用Java继承优化应用程序开发. 继承的从某种意义上讲,继承的短暂美就如同宇宙中所 ...

  9. Java面向对象(二、继承)

    Java 继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法 ...

随机推荐

  1. Java IO(一)

    在Java中,所有的io类都放在java.io包中. 在IO操作中,我们总是会从一个源数据读取到一个目标数据.那么这个源数据和目标数据可以是文件,流等等.那最常见的就是文件,就像我们在本地电脑上写入东 ...

  2. NOIP 2009 最优贸易

    题目描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个 城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分 为双向通行的道路 ...

  3. SPOJ Coconuts 最大流 最小割

    A group of n castle guards are voting to determine whether African swallows can carry coconuts. Whil ...

  4. bzoj 1046: [HAOI2007]上升序列

    Description 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < xm)且( ax1 < ...

  5. SPOJ DQUERY树状数组离线or主席树

    D-query Time Limit: 227MS   Memory Limit: 1572864KB   64bit IO Format: %lld & %llu Submit Status ...

  6. Gradle学习之部署上传项目

    原先在公司做项目时,写了一个简单的基于gradle部署项目的脚本,今天翻出来记录一下 一.build.gradle buildscript { ext { env = System.getProper ...

  7. VC++6.0连接MySQL数据库(MySQL API)

    一.MySQL的安装   Mysql的安装去官网下载就可以...最新的是5.7版本..二.VC6.0的设置(1)打开VC6.中选0 工具栏Tools菜单下的Options选项,在Directories ...

  8. jvm 指令集代码

    指令码 助记符 说明 0x00 nop 什么都不做 0x01 aconst_null 将null推送至栈顶 0x02 iconst_m1 将int型-1推送至栈顶 0x03 iconst_0 将int ...

  9. react 或 vue 中引用 jQuery 插件

    前言 今天与遇到一个令人抓狂的事情, 因为项目中有个交互太过于复杂而且冷门, 没有人封装类似react-swiper那种的移植过来的插件 只有现成的jQuery插件. 而时间并不宽裕,自己重写成rea ...

  10. Day 1 Python简单程序

    一.高级语言和低级语言   最初的计算机程序都是用0和1的序列表示的,程序员直接使用的是机器指令,无需翻译,从纸带打孔输入即可执行得到结果.后来为了方便记忆,就将用0.1序列表示的机器指令都用符号助记 ...