首页 > 编程语言 >Java继承

Java继承

时间:2024-03-19 19:32:53浏览次数:21  
标签:Java 继承 子类 class extends 父类 public

封装:对象代表什么,就得封装对应的数据,并提供数据对应的行为

继承:Java中提供一个关键字extends,用这个关键字,我们可以让一个类和另一个类建立起继承             关系

例如:public class Student extends Person

Student 成为子类(派生类),Person成为父类(基类或超类)

使用继承的好处:①可以把多个子类中重复的代码抽取到父类中了,提高代码的复用性

                             ②子类可以在父类的基础上,增加其他的功能,使子类更强大

什么时候用继承:当类与类之间,存在相同(共性)的内容,并满足子类是父类中的一种,就可                                 以考虑使用继承来优化代码

例如:Student中有姓名,年龄;Teacher中也有姓名,年龄;就可以把姓名年龄放到Person中,               因为学生、老师都是人,所以可以把Person作为父类,Student  Teacher作为子类,当                   Student  Teacher想用时直接继承父类中的就可以了

继承的特点:Java只支持单继承,不支持多继承,但支持多层继承

                     单继承:一个子类只能继承一个父类

                     不支持多继承:子类不能同时继承多个父类

                     多层继承:子类A继承父类B,父类B可以继承父类C;B是A的直接父类,C是A的间                                           接父类。

每一个类都直接或间接继承于Object

练习:4种动物分别有以下行为

布偶猫:吃饭、喝水、抓老鼠

狸花猫:吃饭、喝水、抓老鼠

哈士奇:吃饭、喝水、看家、拆家

泰迪:吃饭、喝水、看家、蹭一蹭

画图:从下往上画:下面子类,上面父类

核心:1.共性内容抽取; 2.子类是父类中的一种

//权限修饰符是public,如果改成private:子类就无法访问了
//注意:子类只能访问父类中非私有的成员

Animal:

package a04extendsdemo1;

public class Animal {
    //权限修饰符是public,如果改成private:子类就无法访问了
    //注意:子类只能访问父类中非私有的成员
    public void eat(){
        System.out.println("吃东西");
    }
    public void drink(){
        System.out.println("喝水");
    }
}

Cat:

package a04extendsdemo1;

public class Cat extends Animal{
    public void catchMouse(){
        System.out.println("抓老鼠");
    }

}

Dog:

package a04extendsdemo1;

public class Dog extends Animal{
    public  void lookHome(){
        System.out.println("看家");
    }
}

Ragdoll:

package a04extendsdemo1;

public class Ragdoll extends Cat {

}

LiHuaMao:

package a04extendsdemo1;

public class LiHuaMao extends Cat {
}

Husky:

package a04extendsdemo1;

public class Husky extends Dog {
    public void breakHome() {
        System.out.println("哈士奇拆家");

    }
}

Teddy:

package a04extendsdemo1;

public class Teddy extends Dog {
    public void touch() {
        System.out.println("泰迪蹭一蹭");
    }
}

Test:

package a04extendsdemo1;

public class Test {
    public static void main(String[] args) {
        //创建对象并调用方法

        //1.创建布偶猫对象
        Ragdoll rd=new Ragdoll();
        rd.eat();
        rd.drink();
        rd.catchMouse();

        System.out.println("-------------------");
        //2.创建哈士奇的对象
        Husky h=new Husky();
        h.eat();
        h.drink();
        h.lookHome();
        h.breakHome();
    }
}

运行结果:

标签:Java,继承,子类,class,extends,父类,public
From: https://blog.csdn.net/TNTxd/article/details/136849500

相关文章

  • nicelog--强大的Java日志组件,排查问题的利器
    ​ nicelog是一个功能强大的Java日志组件,它可以自动、手动收集日志,并通过traceId将日志关联起来,可极大提高排查问题的速度。官网:https://www.yuque.com/knifeblade/opensource/niceloggitee:https://gitee.com/knifeedge/niceloggithub:https://github.com/knife-blade/nicelog......
  • 基于SSM框架的商城的设计与实现(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图 项目介绍随着电子商务的迅猛发展,网上购物已成为人们日常生活的一部分。基于SSM(Spring+SpringMVC+MyBatis)框架的商城系统因其轻量化、高效和易于维护等特点,成为......
  • 在线选课系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图 项目介绍在线选课系统作为现代教育体系中重要的信息化工具,它允许学生通过互联网进行课程选择,提高了教育管理的灵活性和效率。随着教学模式的多样化和个性化学习需求......
  • 基于携程旅行平台自由行的旅游线路管理信息系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍随着个性化旅游需求的增加,自由行成为越来越多旅行者的选择。基于携程旅行平台的自由行旅游线路管理信息系统,旨在为用户提供更加灵活、个性化的旅游规划服务。系......
  • 二手车市场商户管理系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍随着汽车消费市场的成熟和车辆更新换代的加快,二手车交易日益频繁,形成了庞大的二手车市场。针对市场中商户的管理而言,存在着信息杂乱、交易不透明、监管困难等问......
  • java学习中随笔
    进入文件夹cd/d路径打开应用calcmspaintnotepad文件操作md目录名rd目录名cd>文件名del文件名next:会自动去除字符串前的空格,但是一旦遇到有效字符后,遇到空格停止nextLine():以Enter为结束符,可以获得空白this:this:本身调用这个对象super:代表父类对象的......
  • java调节图片大小
    imagegetscaledinstance(intwidth,intheight,inthints)创建此图像的缩放版本。返回一个新的image对象。如果width或height为负数,则替换该值以维持初始图像尺寸的高宽比。如果width和height都为负,则使用初始图像尺寸。参数:width-将图像缩放到的宽度。he......
  • 使用Selenium执行JavaScript脚本:探索Web自动化的新领域
    前言在我们使用selenium进行自动化测试的时候,selenium能够帮助我们实现元素定位和点击输入等操作,但是有的时候,我们会发现,即使我们的元素定位没有问题,元素也无法执行操作;也有部分情况是我们无法直接定位滚动条河时间控件来进行操作,这个时候,我们就需要借助JavaScript来解决问题。......
  • Java 学习笔记:面向对象
    目录Java学习笔记:面向对象什么是面向对象面向过程和面向对象创建与初始化对象回顾方法类与对象的关系构造方法(构造器)创建构造器内存分析封装、继承方法重载super关键字多态instanceof关键字static抽象类接口内部类Java学习笔记:面向对象2024/3/19狂神学Java:学习链接什么是面......
  • Java智慧城管系统源码 数字城管APP系统源码 城市管理综合执法监督系统源码
     Java智慧城管系统源码 数字城管APP系统源码城市管理综合执法监督系统源码一、系统概述  智慧城管系统是一个基于现代信息技术手段的综合管理平台,旨在通过强化信息获取自动化、监督管理精细化、业务职能协同化、服务手段多样化、辅助决策智能化以及执法手段人性化,实......