Java面向对象之继承、构造方法、重写、重载

目录
  • 构造方法
    • 无参构造
    • 有参构造
    • 注意
  • 类的继承
  • 方法重写、重载
    • 重写
    • 重载

构造方法

类的构造方法是特殊的方法,此方法名称必须和类名一致,构造不能有返回值 不使用void,不能直接调用,在类对象实例化时自动调用,new 的时候可以调用。一般构造方法用于类对象实例化时的初始化。如果一个类没有编写构造方法,系统自动给此类编译时添加一个无参构造方法。如果声明类编写了构造方法,系统不再添加无参构造方法,建议编写完构造方法时,最好编写一个无参构造方法。

无参构造

说白了就是没有参数的构造方法
概念看不懂举个例子就清晰了。
声明一个类A

public class A {

}

在类A中创建一个构造方法A(),并且打印出一句话
构造方法必须和类名一样

public class A {
    public A(){
        System.out.println("构造方法A()");
    }
}

新建一个测试类,并在类中nuw一个A类的对象

public class Test {
    public static void main(String[] args) {
        A a = new A();
    }
}

执行main方法试试看

构造方法相当于在new对象是自动使用的方法

有参构造

有参构造就是有参数的构造方法
在类A中声明一个有参数的构造方法,传入两个String类型的参数,a和b

public class A {
    public A() {
    }

    public A(String a, String b) {
        System.out.println(a + b);
    }
}

在测试类中new一个对象a时传入参数

public class Test {
    public static void main(String[] args) {
        A a = new A("aaa", "bbb");
    }
}

执行main方法

注意

没有构造方法的时候,类中隐藏了一个无参构造。但是创建一个有参构造,隐藏的无参构造就会消失。那么以后new对象就只能带参数了。所以在建有参构造时一定要创建一个无参构造方法放那。

类的继承

java语言中,类class 是单继承,多实现接口。接口interface 是多继承的。

为什么要继承呢?因为子类想要在父类的基础上添加新功能。
子类继承父类可以继承父类中的方法和属性
下面举例分析:
父类是人,子类是老司机。
人的特征有:两只手,两只眼,两只脚,会吃会喝
老司机继承了人类的特征,并且多出了自己会开车这个功能。

代码如下:

这是一个人 类,具有以下属性和功能。

public class Ren {
    public final String shou = "两只手";
    public final String jiao = "两只脚";
    public final String yan = "两只眼";

    public void chi() {
        System.out.println("会吃");
    }

    public void he() {
        System.out.println("会喝");
    }

}

这是老司机类,继承了人类。并且多了个会开车的功能

public class Siji extends Ren {
    public void kai() {
        System.out.println("会开车");
    }
}

测试:创建老司机对象输出属性并调用方法。

public class Test {
    public static void main(String[] args) {
        Siji b = new Siji();
        System.out.println(b.jiao);
        System.out.println(b.shou);
        System.out.println(b.yan);
        b.chi();
        b.he();
        b.kai();
    }
}

方法重写、重载

重写 覆盖:方法名,返回类型,形参都一样。有此种情况的,必须为继承关系。
重载:方法名一样,返回类型,形参个数,类型不样的方法,不一定必须是继承关系,同一个类中都可以,比如 构造方法重载

重写

因为子类不满意父类的方法所以想把它改一下,这就是子类重写父类的方法。
比如人会吃会喝,但是老司机不喜欢它会吃这个功能,想把它改一下,改成会吃屎。

代码如下:

老司机重写人类的chi()方法
方法名一定要一样

public class Siji extends Ren {
    public void kai() {
        System.out.println("会开车");
    }

    public void chi() {
        System.out.println("会吃屎");
    }
}

现在重写运行测试类

重载

有参构造和无参构造就是方法重载,一个类中有两个名字一样的方法,但是他们的返回值类型和参数类型,参数个数不一样。
两个方法的返回值类型和参数类型,参数个数,只要有一个不一样。但是他们方法名一样,那么两个方法就重载。

到此这篇关于Java面向对象之继承、构造方法、重写、重载的文章就介绍到这了,更多相关Java面向对象内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解Java面向对象之多态的原理与实现

    目录 何为多态 代码实现 多态理解 何为多态 定义: 多态是指不同的子类在继承父类后分别都重写覆盖了父类的方法,即父类同一个方法,在继承的子类中表现出不同的形式.系统在运行时(而非编译时),能够根据其类型确定调用哪个重载的成员函数的能力,称为多态性. 特点: (1)多态是面向对象的重要特性,简单点说:“一个接口,多种实现”,就是同一种事物表现出的多种形态. (2)多态就是抽象化的一种体现,把一系列具体事物的共同点抽象出来, 再通过这个抽象的事物, 与不同的具体事物进行对话. (3)对不同类的对象

  • Java面向对象之内部类详解

    目录 前言 内部类概述 内部类的分类 成员内部类 局部内部类 前言 在 Java 中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类.本篇博客将总结内部类的使用. 内部类概述 当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使用内部类. 在 Java 中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类. 内部类一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称.

  • Java面向对象设计原则之迪米特法则介绍

    目录 一.迪米特法则的定义 二.迪米特法则的含义 三.总结 一.迪米特法则的定义 迪米特法则,也称为最少知识原则,虽然名字不同,但描述的是同一个规则:一个对象应该对其他对象有最少的了解.通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,被耦合或调用的类的内部是如何复杂都和我没关系,我就知道你提供的这么多public方法,我就调用这么多,其他的我一概不关心. 二.迪米特法则的含义 迪米特法则对类的低耦合提出了明确的规定,其包含以下几层含义. (一).只和朋友交流 迪米特法则,要求只与直接朋友

  • Java基于面向对象实现一个战士小游戏

    目录 一.思路 二.代码实现 设计一个游戏系统,在该系统当中拥有战士 Soldier 角色:,每个角色拥有自己的名字 name .等级 level.生命力 hp ,攻击力 atk.防御力 def:,战士都有普通攻击行为 attack,其实现为根据自己的攻击力减去 被攻击对象的防御力 从而得到对方的失血量:,请设计这个系统中有哪些类,分别有什么属性和行为,有什么关联关系,并在main方法中调用查看效果. 一.思路 首先,我们知道在系统中有个战士的角色叫Soldier,Soldier角色拥有自己的名

  • Java面向对象编程的三大特征

    目录 1.封装 1.1.封装概念 1.2.封装的好处 1.3.封装的实现步骤 2.继承 2.1.继承概念 2.2.继承的好处 2.3.子类对象实例化过程 3.多态 3.1.多态基本介绍 3.2.多态的具体体现 方法的多态 3.3.对象的多态(多态的核心) 3.4.对象的多态的应用 多态数组 多态参数 前言: 封装.继承和多态是面向对象编程的三大特征. 1.封装 1.1.封装概念 封装就是把抽象出的数据(属性)和对数据的操作(方法)封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作(

  • java 面向对象代码块及不同位置对属性赋值的执行顺序

    目录 代码块 对属性可以赋值的位置 不同位置对属性赋值的执行顺序 结语 前言: java中的代码块介绍以及一个类中不同位置对属性赋值的执行顺序. 代码块 1.代码块的作用:用来初始化类.对象 2.代码块如果有修饰的话,只能使用 static 3.分类:静态代码块 VS 非静态代码块 4.静态代码块 内部可以有输出语句. 随着类的加载而执行,而且只执行一次. 作用:初始化类的信息. 如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行. 静态代码块的执行要优先于非静态代码块的执行. 静态代码

  • Java面向对象之继承、构造方法、重写、重载

    目录 构造方法 无参构造 有参构造 注意 类的继承 方法重写.重载 重写 重载 构造方法 类的构造方法是特殊的方法,此方法名称必须和类名一致,构造不能有返回值 不使用void,不能直接调用,在类对象实例化时自动调用,new 的时候可以调用.一般构造方法用于类对象实例化时的初始化.如果一个类没有编写构造方法,系统自动给此类编译时添加一个无参构造方法.如果声明类编写了构造方法,系统不再添加无参构造方法,建议编写完构造方法时,最好编写一个无参构造方法. 无参构造 说白了就是没有参数的构造方法概念看不懂

  • JAVA面向对象之继承 super入门解析

    目录 1 继承 1.1概念 1.2 特点 1.3 练习:继承入门案例 2 super 3 继承的用法 3.1 练习:super之继承中成员变量使用 3.2 练习:super之继承中构造方法的使用 4 方法重写Override 4.1 练习:继承中成员方法的使用 5 拓展 5.1 继承的好处与坏处 5.2 this与super的区别 5.3 重载Overload与重写Override的区别 1 继承 1.1概念 继承是面向对象最显著的一个特征 继承是从已有的类中派生出新的类,新类能吸收已有类的数据

  • Java 面向对象之继承篇详解原理与特点

    目录 一.前言 二.继承 什么是继承呢? 继承的好处与弊端 继承的使用场景? 继承的格式: 继承的特点: 重写的概念: super关键字 super和this的比较 一.前言 前面我也们讲述了相关封装的,现在我们先认识的继承的概念和使用. 二.继承 什么是继承呢? 继承在显示生活中也不少见,比如继承财产之类的,在我们java学习中也有类似的使用, 继承者称作子类也叫派生类,被继承者称作父类.基类或超类,objec类是所有类的父类 (后期介绍) 继承的好处与弊端 好处:就是提高了代码的维护性(多个

  • 学生视角看Java 面向对象的继承本质

    1.什么是继承? (1)用来提高代码的复用性 (2)将相同的功能模块封装到方法中需要使用时调用方法达到代码复用的目的 (3)通过继承将多个类中的相同的类容摘取出来,变成一个新类,让其他类和当前的新类产生关系,达到代码复用性的目的 注意:Java是单继承与c++有区别 ,c++可以多继承. 2.继承的格式 关键字extends 3.继承的特性 *子类拥有父类非 private 的属性.方法. *子类可以拥有自己的属性和方法,即子类可以对父类进行扩展. *子类可以用自己的方式实现父类的方法. *Ja

  • java中重载,继承,重写和多态的区别

    重载,继承,重写和多态的区别: 1)继承是子类获得父类的成员. 2)重写是继承后重新实现父类的方法. 3)重载是在一个类里一系列参数不同名字相同的方法. 4)多态则是为了避免在父类里大量重载引起代码臃肿且难于维护. 网上看到一个有趣的说法是:继承是子类使用父类的方法,而多态则是父类使用子类的方法. 下面的例子包含了这四种实现: class Triangle extends Shape { public int getSides() {   return 3;  } } class Rectang

  • java面向对象继承与多态介绍

    目录 一.概述 二.继承 2.1 继承的概述 2.2 继承机制 2.3 类中属性,方法的继承与覆盖 2.4 super 关键字 三. 多态 总结 一.概述 面向对象程序设计的三大原则是封装性,继承性和多态性.继承性是子类自动共享父类的数据和方法的机制,它是由类的派生功能体现的.继承具有传递性,使得一个类可以继承另一个类的属性和方法,这样通过抽象出共同的属性和方法组件新的类,便于代码的重用.而多态是指不同类型的对象接收相同的消息时产生不同的行为,这里的消息主要是对类成员函数的调用,而不同的行为是指

  • Java全面分析面向对象之继承

    目录 继承 什么是继承呢? 子类访问父类的成员变量 子类访问父类非同名成员变量 子类访问父类同名成员变量 子类访问父类的成员方法 子类访问父类的非同名方法 子类访问父类的同名方法 super关键字 super访问父类成员变量 super访问父类成员方法 创建构造方法 super与this的区别 顺序 详解访问修饰限定符 继承方式与组合 继承方式 组合 继承 什么是继承呢? 继承(Inheritance)是一种联结类与类的层次模型.指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口

  • 浅谈java面向对象(类,封装,this,构造方法)

    无论面向对象还是面向过程, 这俩都是解决问题的思路而已, 只是角度不同. 面向过程: 强调解决问题的每一个步骤都亲力亲为,每一个细节都自己手动实现. 面向对象: 使用特定功能对象去解决特定的问题, 每一个细节不需要关注,只需要创建对应的对象即可. 面向对象是基于面向过程的 类和对象及他们的关系 类: 具有相同特征和行为(功能)的事物的统称 , 是一个抽象概念 对象: 这类事物中某个确定的个体 类和对象的关系 一个类可以创建多个对象 , 类是对象的抽象, 对象是类的实例. 描述一个事物---->

  • Java面向对象编程之类的继承详解

    本文实例讲述了Java面向对象编程之类的继承.分享给大家供大家参考,具体如下: 继承:特殊类拥有一般类的全部属性与行为. 继承好处: 1.提高了代码的复用性 2.让类与类之前产生了关系,有了这个关系才有多态的特性.继承是类和类之前的关系. 注意事项: 1.java只支持单继承,不支持多继承.因为多继承有安全隐患:当多个父类定义相同的函数,但是功能不同时,子类不知道运行哪一个. 2.子类继承父类时,继承了父类的所有方法和属性,可直接使用. 3,java支持多层继承,即:孙-子-父的关系 语法: [

  • Java面向对象程序设计:继承,多态用法实例分析

    本文实例讲述了Java面向对象程序设计:继承,多态用法.分享给大家供大家参考,具体如下: 本文内容: 继承 多态 首发时期:2018-03-23 继承: 介绍: 如果多个类中存在相同的属性和行为,可以将这些内容抽取到单独一个类中,那么多个类(子类)无需再定义这些属性和行为,只要继承那个类(父类/超类/基类)即可.[比如,泰迪狗类也是狗类,狗的属性,泰迪狗也应该是有的,那么泰迪狗类在定义的时候就不必要添加那些与狗类重复的属性了,而是直接继承狗类即可.在多个狗类的子类(泰迪狗,二哈,柴犬)的时候,直

随机推荐