实验1 中国人与美国人

继承相关知识:由继承得到的类称为子类被继承的类称为父类(超类)Java不支持多重继承,即子类只能有一个父类。人们习惯地称子类与父类的关系是is-a关系。

如果子类和父类在同一个包中,那么子类自然地继承了父类中不是private的成员变量作为子类的成员变量,并且也自然地继承了父类中不是private的方法作为子类的方法。继承的成员变量或方法的访问权限保持不变。子类和父类不在同一个包中时,父类中的 private和友好访问权限的成员变量不会被子类继承。也就是说,子类只继承父类中的 protected和public访问权限的成员变量作为子类的成员变量;同样,子米只继承父米中的 protected和public访问权限的方法作为子类的方法。

子类声明的成员变量的名字和从父类继承来的成员变量的名字相同时,将隐藏所继承的成员变量。方法重写是指:子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同。子类如此定义的方法称为子类重写的方法。

子类继承的方法所操作的成员变量一定是被子类继承或隐藏的成员变量。重写方法既可以操作继承的成员变量调用继承的方法,也可以操作子类新声明的成品容量。调用新定义的其他方法。但无法操作被子类隐藏的成员变量和方法。

实验要求

编写程序模拟中国人、美国人及北京人。除主类外,程序中有4个类:People、 ChinaPeople、 AmericanPeople和BeijingPeople。要求如下:

(1)People类有权限是protected的double型成员变量height和weight,以及 public void speakHello( ),public void averageHeight( )和public void averageWeight( )方法。

(2)ChinaPeople类是People的子类,新增了public void chinaGongfu( )方法。要求 ChinaPeople 重写父类的public void speakHello( )、public void averageHeight( )和 public void averageWeight( )方法。

(3)AmericanPeople类是People的子类,新增public void americanBoxing( )方法。要求AmericanPeople重写父类的public void speakHello( )、public void averageHeight( )和 public void averageWeight( )方法。

(4)BeijingPeople类是ChinaPeople的子类,新增public void beijingOpera( )方法。要求ChinaPeople重写父类的public void speakHello( )、public void averageHeight()和 public void averageWeight( )方法。


public class Example {public static void main(String args[]) {ChinaPeople chinaPeople=new ChinaPeople();AmericanPeople americanPeople=new AmericanPeople();BeijingPeople beijingPeople=new BeijingPeople();chinaPeople.speakHello();americanPeople.speakHello();beijingPeople.speakHello();chinaPeople.averageHeight();americanPeople.averageHeight();beijingPeople.averageHeight();chinaPeople.averageWeight();americanPeople.averageWeight();beijingPeople.averageWeight();chinaPeople.chinaGongfu();americanPeople.americanBoxing();beijingPeople.beijingOpera() ;beijingPeople.chinaGongfu();}  }

public class People {protected double weight,height;public void speakHello() {System.out.println("yayayaya");}  public void averageHeight() {height=173;System.out.println("average height:"+height);}public void averageWeight() {weight=70;System.out.println("average weight:"+weight);}}

public class ChinaPeople extends People {public void speakHello() {    System.out.println("您好");}    public void averageHeight() {height = 168.78;  System.out.println("中国人的平均身高:"+height+" 厘米");   }public void averageWeight() {weight=65; System.out.println("中国人的平均体重:"+weight+"公斤");}//重写public void averageWeight()方法,输出:"中国人的平均体重:65公斤"public void chinaGongfu() {System.out.println("坐如钟,站如松,睡如弓");}}

public class BeijingPeople extends ChinaPeople {public void averageHeight() {height = 172.5;  System.out.println("北京人的平均身高:"+height+"厘米");   } //重写public void averageHeight()方法, 输出:"北京人的平均身高:172.5厘米"public void averageWeight() {weight=70; System.out.println("北京人的平均体重:"+weight+"公斤");} //重写public void averageWeight()方法,输出:"北京人的平均体重:70公斤"public void beijingOpera() { System.out.println("花脸、青衣、花旦和老生");}
}

public class AmericanPeople extends People {public void speakHello() {System.out.println("How do you do");}//重写public void speakHello()方法,输出"How do you do"public void averageHeight() {height = 176;System.out.println("American's average height:"+height+" cm");}//重写public void averageHeight()方法,输出"American's average height:176 cm"public void averageWeight() { weight = 75;  System.out.println("American's average weight:"+weight+" kg");   }public void americanBoxing() {System.out.println("直拳、钩拳、组合拳");}
}

JAVA子类与继承 实验实列相关推荐

  1. java继承机制实验报告_JAVA继承实验报告.doc

    JAVA继承实验报告 JAVA语言程序设计 实验报告 实验一 实验题目: 面 向 对 象 编 程 指导老师: 卢照 专业班级:计算机科学与技术系1106班 姓 名:*****) 2014年3月20日 ...

  2. Java实用教程笔记 子类与继承2

    子类与继承2 Review 继承方式比较 继承后子类对父类的访问权限说明 super关键字作用(2个) 构造函数的调用顺序 没有参数的构造函数即为默认构造函数 Lecture notes final关 ...

  3. Java实用教程笔记 子类与继承

    子类与继承 Unity 游戏仿真 C#与Java语法差不多 java.lang.Object Object是所有类的祖先类/始祖类 任何一个类最终都能转化为Object类的对象 Java库中的类是基础 ...

  4. Java子类继承(二):隐藏成员变量和方法重写的理解

    1,上篇说子类可以继承父类的成员变量,作为自己的成员变量,在Java中子类也可以隐藏由父类继承来的成员变量,只要子类中声明的成员变量和父类的成员变量同名,就可以将其隐藏. 需要的注意是:子类对象可以调 ...

  5. java 子类 复制_关于java子类继承来的属性与方法究竟是完全复制还是共用使用...

    关于java子类继承来的属性与方法究竟是完全复制还是共用使用 关于java子类继承来的属性与方法究竟是完全复制还是共用使用 今天在学习java的面向对象时,无意间发现一个问题. public clas ...

  6. java 子类继承父类_关于Java 的继承问题,子类会继承父类的哪些东西?-----转载...

    和C++类似,可以继承基类的公共属性和方法. 在Java继承里,父类的属性还有方法在声明时,如果是public关键字即公共属性,则在子类继承时,这些属性和方法都会被子类继承.受保护的也可以继承 但是私 ...

  7. 在java继承机制中 父类中的私有_Java中子类能继承父类的私有属性吗?

    前段时间去听老师讲课的时候,老师告诉我子类是可以继承父类所有的属性和方法的.当时我是极其疑惑的,因为之前学校考试时这个考点我记得很清楚:子类只能继承父类的非私有属性和方法.老师给我的解释是这样的--先 ...

  8. JAVA子类继承多个_Java的一个子类可以继承自多个父类。

    Java的一个子类可以继承自多个父类. 答:× 放样时的路径允许有几个?() 答:1个 下列有关有限合伙企业设立条件的表述中,不符合新颁布的<合伙企业法>规定的是( ) 答:有限合伙企业名 ...

  9. 《Java 2 实用教程》课程学习(5)——第5章 子类与继承

    5.1 继承 class A { int i,j;void showIJ(){ System.out.println("I and J: "+i+" "+j); ...

  10. JAVA校内报纸实验_实验(实训)中心2011—2012学年第二学期工作计划

    实验(实训)中心2011-2012学年 第二学期工作计划 在2011-2012学年第二学期里,实验(实训)中心将树立为教学.为教师.为学生服务的理念,增强管理人员工作责任心,以学院评建为契机,全面提高 ...

最新文章

  1. 探索可解释及稳定性,AI与博弈,自适应推理——“智源论坛:机器学习青年学者报告会”要点总结
  2. CTFshow 命令执行 web57
  3. python金字塔图绘制_如何用R或Python绘制3d(4变量)三元(金字塔)图?
  4. Code for City 黑客松 | 成都站启动
  5. mobile.php discuz,电脑访问discuz手机版【触屏版跳转标准版的修改方法】
  6. WIN7、Vista下无损分区工具Acronis Disk Director Suite 10.0下载及使用说明
  7. 关于ASCII码的转换
  8. kettle-连接mysql数据库
  9. 纳米机器人驱动技术提速十万倍
  10. python sort sorted_Python sort和sorted
  11. Linux 课程设计 每日小
  12. 关于SaaS平台中应对多租户模式的设计
  13. python绘制红色五角星_python绘制五角星
  14. python文件操作入门
  15. react前端项目_如何使用React前端设置Ruby on Rails项目
  16. 人工智能和AI到底是什么,浅谈人工智能和AI
  17. IDEA新建项目配置tomcat
  18. matlab用C语言画图,Matlab数据与函数的作图(详细例子)c.pdf
  19. openCV中convertTo的用法1
  20. CSDN的Blog怎么了?

热门文章

  1. bootstrap collapse 卡顿
  2. 如何设置快速启动栏 win7 快速启动栏 快速启动栏不见了.
  3. php steamcommunity,使用PHP和Regex获取Steam社区市场上商品的价格
  4. Flask 物联网局部应用情景
  5. [JAVA]EXCEL工具推荐-MyExcel
  6. 程序员接私单操作流程。
  7. C++之客户消费积分管理系统
  8. jpa 人大金仓数据库方言_人大金仓+springboot配置
  9. 计算机网络与云技术计算,计算机网络云计算技术(原稿)
  10. 掌握哪些知识,才能被称得上一名合格的前端开发工程师?