1 package com.bytezero.inherit;
2
3 /*
4 * 面向对象的特征二:继承性
5 *
6 * 一.继承性的好处:
7 * ①减少了代码的冗余,提供了代码的复用性
8 * ②便于功能的拓展
9 * ③为之后的多态性,提供了前提
10 *
11 *
12 * 二.继承性的格式 class A extends B{}
13 * A:子类 派生类 subclass
14 * B:父类 超类 基类 superclass
15 *
16 * 体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有的:属性,方法
17 * 特别的,父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了
18 * 父类中的私有结构。
19 *
20 * 只是因为封装性的影响,使得子类不能直接调用父类的结构而已。
21 *
22 * 子类继承父类以后,还可以声明自己的属性和方法,实现功能的拓展。
23 *
24 * 子类和父类的关系,不同于集合和子集的关系。
25 *
26 * extends:延展,拓展
27 *
28 * 三.Java中关于继承性的规定
29 * 1.一个类可以被多个子类继承
30 * 2.单继承:一个类只能有一个父类 (C++可以多继承)
31 * 3.子父类是相对的概念。多层继承
32 * 4.子类直接继承的父类,成为:直接父类
33 * 子类间接继承的父类为:简介父类
34 * 5.子类继承父类以后,就获取了直接父类以及所有间接父类声明的属性和方法
35 *
36 * 四.1.如果我们没有显示的声明一个父类的话,则此类继承与 java.long.Object类
37 * 2.所有的Java类(除 java.long.Object类外),都直接或间接的继承 java.long.Object类.
38 * 3.意味着,所有Java类具有 java.long.Object类声明的功能。
39 *
40 */
41 public class ExtendsTest
42 {
43 public static void main(String[] args)
44 {
45 Person p1 = new Person();
46 // p1.age = 1;
47 p1.eat();
48 //p1.sleep();
49
50 p1.setAge(30);
51 System.out.println(p1.getAge());
52
53
54
55
56
57 Student s1 = new Student();
58 s1.eat();
59 //s1.sleep();
60 s1.name = "Tom";
61 s1.setAge(10);
62 System.out.println(s1.getAge());
63
64 s1.study();
65 s1.breath();
66
67
68 Creature c = new Creature();
69 c.toString();
70
71 }
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 }
1 package com.bytezero.inherit;
2
3 public class Creature //这个类 的父类是 java.long
4 {
5 public void breath()
6 {
7 System.out.println("呼吸");
8 }
9 }
 1 package com.bytezero.inherit;
2
3 public class Person extends Creature
4 {
5 String name;
6
7 //私有
8 private int age;
9
10 public Person()
11 {
12
13 }
14 public Person(String name ,int age)
15 {
16 this.name = name;
17 this.age = age;
18 }
19
20 public void eat()
21 {
22 System.out.println("吃饭");
23 sleep();//调用 私有方法 同类中可以调用
24 }
25
26 //私有
27 private void sleep()
28 {
29 System.out.println("睡觉");
30
31 }
32
33
34 public int getAge() {
35 return age;
36 }
37 public void setAge(int age) {
38 this.age = age;
39 }
40
41
42
43
44 }
 1 package com.bytezero.inherit;
2
3
4 public class Student extends Person
5 {
6 // String name;
7 // int age;
8 String major;
9
10 public Student()
11 {
12
13 }
14
15 public Student(String name,int age,String major)
16 {
17 //this.age = age;
18 setAge(age);
19 this.name = name;
20 this.major = major;
21 }
22
23 // public void eat()
24 // {
25 // System.out.println("吃饭");
26 // }
27 // public void sleep()
28 // {
29 // System.out.println("睡觉");
30 // }
31
32 public void study()
33 {
34 System.out.println("学习");
35 }
36 public void show()
37 {
38 System.out.println("name:"+name+",age:"+getAge());
39 }
40
41
42
43
44 }

Java 关于继承小练习的更多相关文章

  1. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

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

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

  3. [ Java学习基础 ] Java的继承与多态

    看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...

  4. Java学习笔记二十九:一个Java面向对象的小练习

    一个Java面向对象的小练习 一:项目需求与解决思路: 学习了这么长时间的面向对象,我们只是对面向对象有了一个简单的认识,我们现在来做一个小练习,这个例子可以使大家更好的掌握面向对象的特性: 1.人类 ...

  5. java基础知识小小结

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

  6. 20145229吴姗珊 《Java程序设计》小总结

    20145229吴姗珊 <Java程序设计>小总结 教材学习内容总结 由于今天考试考到了操作题,根本无从下手,然后才意识到原来之前的学习都是蜻蜓点水,一味的把学习建立在给老师学,为家长学的 ...

  7. 新秀翻译(一个)——Java在继承和组合

    阅读英文的程序猿的能力,这是非常重要的.过去的几年中一直在学习英语,今天心血来潮,在网上找什么鲍文简要翻译. 普通级,能力有限,看官还请大家多多指点. 译文: 本文将会举例说明Java中继承和组合的概 ...

  8. 隐身衣揭秘--java中继承/隐藏/覆写

    故事背景 看过<哈利·波特>的娃们,想必一定还记得电影中的“隐形斗篷”..这件隐形衣是哈利收到的圣诞礼物,也是死亡圣器中的三件套之一,它让哈利小盆友在执行任务的过程中简直是如虎添翼! 其实 ...

  9. 1903021126-申文骏-Java第十一周作业-Java中继承、多态及抽象类的使用

    项目 内容 课程班级博客链接 19级信计班(本) 作业要求链接 第十一周作业 博客名称 1903021126-申文骏-Java第十一周作业-Java中继承.多态及抽象类的使用 作业要求 每道题要有题目 ...

  10. java基础-继承

    浏览以下内容前,请点击并阅读 声明 一个由其他类继承的类叫子类(也叫继承类,扩展类等),该类继承的类叫父类或超类.除了Object类意外,所有的类都有切仅有一个父类,如果一个类没有用extends关键 ...

随机推荐

  1. Go 复合数据类型之结构体与自定义类型

    Go 复合数据类型之结构体与自定义类型 目录 Go 复合数据类型之结构体与自定义类型 一.类型别名和自定义类型 1.1 类型定义(Type Definition) 简单示例 1.2 类型别名 简单示例 ...

  2. linxu下面的绝对路径和相对路径

    绝对路径和相对路径 前言 相对路径与绝对路径 绝对路径 相对路径 目录的相关操作 绝对路径和相对路径 前言 学习linux,对于里面的路径肯定要很清楚.做下总结吧. 相对路径与绝对路径 绝对路径 路径 ...

  3. 【主流技术】聊一聊对 Mybatis Plus 的理解与应用

    前言 mybatis plus是一个mybatis的增强工具,在其基础上只做增强不做改变.作为开发中常见的第三方组件,学习并应用在项目中可以节省开发时间,提高开发效率. 官方文档地址:MyBatis- ...

  4. 2.6 PE结构:导出表详细解析

    导出表(Export Table)是Windows可执行文件中的一个结构,记录了可执行文件中某些函数或变量的名称和地址,这些名称和地址可以供其他程序调用或使用.当PE文件执行时Windows装载器将文 ...

  5. 最新力作,爱来自rand函数

    AWCU47EF;D5F]ET[a8a9K6G5IRHB6RS\cD8YDC:AGN<Z@6ZI3ab8D3O3La7:Sc;5_B]BS5S6Q]baWGcTE94IX7cW=9F>BJ ...

  6. Linux服务器Crontab定时任务配置

    1.检查linux系统是否有crontab rpm -qa | grep crontab 2.如果未安装进行安装 yum -y install vixie-cron yum -y install cr ...

  7. 解决每次 git pull/push 时都需要输入账号和密码的问题

    问题 在提交代码或者拉取代码的时候,如果每次git都要输入用户名密码 解决方法 1. 终端输入 git config --global credential.helper store 2. 在git ...

  8. Windows 10 配置Java 环境变量

    下载 JDK 下载地址:https://www.oracle.com/java/technologies/downloads/ 点击下载按钮: 开始安装JDK: 可以设置为你想安装的路径. 环境变量配 ...

  9. ABC 310

    E \(dp[i][j]\) 表示前 \(i\) 个里有多少个后缀答案为 \(j\). \(if (c[i] == '0') \{\) \(dp[i][0] = 1;\) \(dp[i][1] = d ...

  10. C# 二十年语法变迁之 C# 8参考

    C# 二十年语法变迁之 C# 8参考 自从 C# 于 2000 年推出以来,该语言的规模已经大大增加,我不确定任何人是否有可能在任何时候都对每一种语言特性都有深入的了解.因此,我想写一系列快速参考文章 ...