/*** 通过类来体现类与类之间的关系:* 1,创建动物类* 2,创建猫类* 3,创建狗类**/
public class InheritDemo {public static void main(String[] args) {Animal animal = new Animal();Dogo dogo = new Dogo();Cat cat = new Cat();//狗和狗类中没有定义公共访问方法,继承父类同样是可以使用。dogo.setName("米奇");dogo.setAge(12);dogo.setColour("白色");dogo.setFood("肉");cat.setName("汤姆");cat.setAge(8);cat.setColour("黑色");cat.setcFood("鱼");//父类访问自己方法System.out.println("--------------1--------------");animal.eat(dogo.getName());//子类访问访问父类方法dogo.eat(dogo.getName());cat.eat(cat.getName());//-----上面子类继承后之间使用父类方法-----System.out.println("--------------2--------------");cat.catFonction();dogo.dogoFoncrtion();//-----上面子类访问自己方法-----//animal.catFonction(); 会编译失败System.out.println("--------------3--------------");System.out.println("狗:"+dogo.getName()+","+dogo.getAge()+","+dogo.getColour()+","+dogo.getFood());System.out.println("猫:"+cat.getName()+","+cat.getAge()+","+cat.getColour()+","+cat.getcFood());}
}//动物类
class Animal{private String name;private String colour;private int age;//不带参数的构造方法Animal(){}//不带参数的构造方法Animal(String name,String colour,int age){this.name = name;this.colour = colour;this.age = age;}public void eat(String name){//查看那个类在访问当前方法String f = this.getClass().getSimpleName();System.out.println("当前"+f+"在访问"+","+this.name+",动物吃饭了");}//提供公共的访问方法public String getName() {return name;}public String getColour() {return colour;}public int getAge() {return age;}public void setName(String name) {this.name = name;}public void setColour(String colour) {this.colour = colour;}public void setAge(int age) {this.age = age;}
}//狗类
class Dogo extends Animal{private String dFood;Dogo(){//super(),继承后此时会默认生成super(),的引用。从而产生了关系}Dogo(String name,String colour,int age,String food){//继承父类属性super(name, colour, age);//本类和成员变量重名用this区分this.dFood = food;}public void dogoFoncrtion(){System.out.println("狗狗会看家!");}public String getFood() {return dFood;}public void setFood(String food) {this.dFood = food;}
}//猫类
class Cat extends Animal{private String cFood;Cat(){}Cat(String name,String colour,int age,String food){//继承父类属性super(name, colour, age);this.cFood = food;}public String getcFood() {return cFood;}public void setcFood(String cFood) {this.cFood = cFood;}public void catFonction(){System.out.println("猫会抓老鼠!");}}

运行结果:
--------------1--------------
当前Animal在访问,null,动物吃饭了 -->注意:结果出来的是null,因为调用的对象是父类的方法,此父类对象(属性)还没有初始化。
当前Dogo在访问,米奇,动物吃饭了-->此时,是调用了父类方法,按照子类中私有属性和公共方法来初始化,所以就赋值成功。
当前Cat在访问,汤姆,动物吃饭了
--------------2--------------
猫会抓老鼠!
狗狗会看家!
--------------3--------------
狗:米奇,12,白色,肉
猫:汤姆,8,黑色,鱼

/**
 * Java中支持单继承和多重继承不支持多继承
 *多重继承
 * class A{
 * }
 * class B extends A{
 * }
 * class C extends B{
 * }
 * 
 *单继承
 * class A{
 * }
 * class B extends A{
 * }
 * 
 * 多继承(C支持,但是Java中,对他进行了修改,存在调用的不确定性)
 * class A extends A,B{
 * 
 * 注意存在关系才可以继承,A是B中的一种。
 * }
 */

以上权当个人看法,如有问题,请您联系。

Java基础--继承案例(二)相关推荐

  1. Java基础知识(二)(Object类的常用方法、日期时间类、System类、StringBuilder类、包装类、Collection集合、Iterator迭代器、泛型、list集Set接口...)

    文章目录 Java基础知识(二) 1.Object类的常用方法 1.1 toString方法 1.2 equals方法 1.3 Objects类 2.日期时间类 2.1 Date类 2.2 DateF ...

  2. java基础与案例开发详解 pdf下载_Java基础与案例开发详解(张孝祥) pdf_IT教程网...

    资源名称:Java基础与案例开发详解(张孝祥) pdf 第1.2和3章介绍Java环境的安装配置,Java程序的开发过程和Java语言的基础语法. 第4章介绍数组和常用算法的相关知识. 第5章和6章介 ...

  3. java基础语法(二)--单列模式

    java基础语法(二)--单列模式 /*** 功能:单列模式* @author Administrator**/ public class SingletonTest {public static v ...

  4. Java基础语法(二)——数据类型

    文章目录 Java基础语法(二)--数据类型 一.int 整型类型 1.基本语法格式 2.数值范围 3.未定义时变量的默认初始值 4.注意事项 二. long 长整型类型 1.基本语法格式 2.数值范 ...

  5. Java基础篇(二)

    Java基础篇(二) 1.编写第一个应用程序 第一个应用程序 创建以Java结尾的源文件:如First,java 编写第一个程序 (public) class World { public stati ...

  6. Java基础IO流(二)字节流小案例

    JAVA基础IO流(一)https://www.cnblogs.com/deepSleeping/p/9693601.html ①读取指定文件内容,按照16进制输出到控制台 其中,Integer.to ...

  7. 黑马程序员——Java基础---继承,抽象,多态,接口,包,内部类

    -----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 一.继承 (一)继承概述 多个类中存在相同属性和行为时,将这些内容抽取到单独一个 ...

  8. Java基础巩固(二)异常,多线程,线程池,IO流,Properties集合,IO工具类,字符流,对象流,Stream,Lambda表达式

    一.异常,多线程 学习目标 : 异常的概述 异常的分类 异常的处理方式 自定义异常 多线程入门 1 异常的概述 1.1 什么是异常? 异常就是程序出现了不正常情况 , 程序在执行过程中 , 数据导致程 ...

  9. Java基础学习笔记(二)_Java核心技术(进阶)

    本篇文章的学习资源来自Java学习视频教程:Java核心技术(进阶)_华东师范大学_中国大学MOOC(慕课) 本篇文章的学习笔记即是对Java核心技术课程的总结,也是对自己学习的总结 文章目录 Jav ...

最新文章

  1. python读取文件夹图片_读取文件夹里的图片,并且与标签对应
  2. thinkphp 框架自动加载原理_ThinkPHP5分析Part 1 基本框架流程
  3. word饼图如何画引导线_网络授课如何手写、标注?
  4. 11.24杭州沙龙预告:数据化经营,智能化决策
  5. POJ 2773 欧几里得
  6. PNG,GIF,JPG的区别及如何选
  7. 使用主题文件(包含CSS文件)时遇到的问题
  8. 不同网段通过静态路由实现互通(强烈推荐)
  9. Java之switch的控制语句详解
  10. spring 的jdbc和事务支持
  11. @Controller深入详解
  12. 惠普Elite Mini 800 G9 评测
  13. iphone 程购买实现
  14. protues 软件介绍
  15. 第二届太原理工大学程序设计新生赛决赛-(Cappuccino ~ the end of journey-M)简单模拟
  16. 什么是深拷贝和浅拷贝,如何进行浅拷贝?
  17. html怎么垂直对其,html – 垂直对齐方法
  18. VK1621是段码LCD液晶显示屏驱动IC,具省电模式,替代市面上1621 LQFP44/48、SSOP48、DICE,最大支持32*4点阵 FAE技术支持
  19. 常用邮箱POP3 STMP服务器与端口号设置:
  20. 利用matlab实现DMD动态模态分解(在一维信号或二维流场矢量中的应用)

热门文章

  1. 四极管:WaitForMultipleObjects的疑惑
  2. 2020.4.1-2020.4.7 魔笛手Pied pier周记
  3. 共识协议(7)aura
  4. 2021年12月27日多载波NOMA论文阅读
  5. 大白话解析Context中的cancelCtx
  6. 网易邮箱登录页面html5布局,css实现tab效果仿163邮箱样式
  7. DirectX12的初始化
  8. C#中 out的使用
  9. 东北育才高中2021年高考成绩查询,东北育才学校2020年高考成绩喜报
  10. 如何使用S32DS开发KEA系列的LIN功能(二)