Java超详细分析继承与重写的特点

概念:继承是面向对象语法三大特征之一,继承可以降低代码的沉余度,提高编程的效率。通过继承子类可以随意调用父类中的某些属性与方法,一个子类只能继承一个父类,一个父类可以被多个子类继承。它就好比与我们显示生活中孩子继承父亲的财产。重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法,就好比金毛与哈士奇他的特征都是来自狗,仓鼠与松鼠他们他们的特征来自老鼠,而他们身上的不同属于基因突变就相当于重写

继承的特点:

1):java中只支持单根继承,即一个类只能有一个直接父类,一个父类可以有多个子类

2):将子类公共的属性抽取出来生成父类属性用于继承

3):子类无法继承或重写父类private修饰的属性和资源

重写的特征:

1).子类重写的方法必须和父类被重写的方法具有相同的方法名称、参数列表

2).子类重写的方法的返回值类型不能大于父类被重写的返回值类型

3).子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限子类不能重写父类中声明为private(即私有属性)权限的方法

4).子类方法抛出的异常不能大于父类被重写方法的异常

需要用的的方法或关键字:

extends:我们可以通过此关键字来进行继承,在关键字后写入需要被继承的类或方法既可实现继承

super():我们可以通过此方法来调用我们继承后的父类的属性或方法使用

测试类:

package com.ytzl.total;
/*继承*/
public class inherit {
    public static void main(String[] args) {
        son son = new son();//调用子类
        System.out.println(son.a);//调用子类中的属性
        son.a=2;//可以通过子类改变父类中的属性
        System.out.println("更改后的父类属性"+son.a);
        son.myfather();//带调用父类的方法
        son.money();//调用重写的方法w
        son.jng();//调用静态修饰方法
        son.jing();
        System.out.println("子类通过继承方法调用父类中的属性=>"+son.b);//调用父类中的静态属性
        son.two();
    }
}

父类:

package com.ytzl.total;
public class father {
    int a=0;
    static int b=2;
    private int one=4;//被私有属性修饰后将不能别子类调用或继承,
    protected int two=0;
    protected void two(){//该方法只能被子类继承重写不能被调用
        System.out.println("我是protected方法");
    }
    public void setOne(int one) {
        this.one = one;
    }
    public void money(){
        System.out.println("我是被子类重写的方法");
        System.out.println("父类的属性=>"+a);
    }
    public void myfather(){
        System.out.println("我是被子类继承的方法");
    }
    public static void jing(){
        System.out.println("你好");
    }
    public static void jng(){
        System.out.println("你好");
    }
    private void dong(){
        System.out.println("私有方法");
    }
}

子类:

package com.ytzl.total;
public class son extends father{
    //方法的重写
    public void money(){
        super.money();//通过继承过去父类的money方法里的内容
        System.out.println("重写后的方法");
        System.out.println("被继承后"+super.a);//通过super来继承父类的属性
        System.out.println("继承后的protected属性=>"+super.two);//通过super来继承protected方法
        super.two();
    }
    public static void jing(){//不能重写静态方法static
        System.out.println("不好");
    }
    private void dong(){//不能重写或者继承父类的私有方法
        System.out.println("私有方法");
    }
    protected void two(){//重写后的protected方法
        System.out.println("我是重写后的protected方法");
    }
}

运行后的结果:

到此这篇关于Java超详细分析继承与重写的特点的文章就介绍到这了,更多相关Java继承与重写内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java继承方法重写实现原理及解析

    这篇文章主要介绍了Java继承方法重写实现原理及解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在Java继承中,子类可以获得父类所有的结构,也可以增加与父类不同的属性和方法.但是,有一种情况,一个相同的方法,子类的行为并不像父类那样,这时,就需要重写父类的方法,下面是重写的代码实现: 代码体现 package com.my.pac12; /** * @author Summerday * @date 2019/12/11 21:26 */

  • Java中方法重写与重载的区别

    目录 一.重写(Override) 二.重载(Overload) 三.总结 Java方法重写(Override)与重载(Overload)的区别(超详细) 首页在我们要学习这个知识点之前,应该要先了解什么是多态? 在最初学习java的时候,人们都知道,java这种面向对象的语言,一共有三大特征,分别是:封装.继承.多态. 多态是同一个行为具有多个不同表现形式或形态的能力. 举个例子,比如大多数动物(抽象类)会叫,但是狗(实现类)就是汪汪汪,猫(实现类)就是喵喵喵. 多态实现的必要条件 子类必须继

  • Java超详细讲解三大特性之一的继承

    目录 继承的概念 方法的重写 super关键字的使用 super调用构造器 总结 继承的概念 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为. 通过继承可以快速创建新的类,实现代码的重用,提高程序的可维护性,节省大量创建新类的时间,提高开发效率和开发质量. 继承性的好处: 减少代码的重复 提高代码复用性 便于功能拓展 继承性的格式:class A extends B{} A:子类,派生类,subclass,B: 父类

  • java方法重写时需要注意的问题

    目录 注意事项1:子类权限控制符不能变小 注意事项2:子类返回值类型只能变小 注意事项3:抛出的异常类型只能变小 注意事项4:方法名必须保持一致 注意事项5:方法的参数类型和个数必须保持一致 总结 在面向对象编程中,方法重写(override)是一种语言特性,它是多态的具体表现,它允许子类重新定义父类中已有的方法,且子类中的方法名和参数类型及个数都必须与父类保持一致,这就是方法重写. 方法重写最简单的示例如下,定义一个父类 Father 和子类 Son,父类中有一个 method 方法,而在子类

  • Java轻松掌握面向对象的三大特性封装与继承和多态

    目录 1.封装 1.介绍 2.封装的理解和好处 3.封装的实现步骤 2.继承 1.介绍 2.继承的基本语法 3.继承的使用细节 3.super关键字 1.基本介绍 2.基本语法 3.细节与好处 4.super与this的比较 4.方法重写 1.基本介绍 2.注意事项与使用细节 3.重载与重写的比较 3.多态 1.基本介绍 2.具体体现 1.方法的多态 2.对象的多态(重点) 3.多态注意事项和细节讨论 1.多态的前提 2.属性 3.instance of 4.多态的向上转型 5.多态的向下转型

  • 浅谈java中的重载和重写的区别

    目录 1.重载 小结: 2.重写 小结: 总结 1.重载 重载指在一个类中,具有多个相同名称的方法,他们的参数列表却不相同 (参数类型不同.参数个数不同甚至是参数顺序不同) 重载对返回类型没有要求,可以相同也可以不同,但是不能返回类型来判断他们是否是重载. 例如 package HelloWorld; public class Zuoye { public static void main(String[] args) { Zuoye z = new Zuoye(); z.fangfa1();

  • Java超详细讲解继承和多态的使用

    目录 继承和多态 1.继承 1.1.继承概念 1.2.继承的语法 1.3.父类成员的访问 1.31.子类和父类不存在同名成员变量 1.32.子类和父类成员变量同名 1.33.成员方法名字不同 1.34. 成员方法名字相同 1.4.super关键字 1.5.子类构造方法 1.6.super和this 1.7.初始化 1.8.protected关键字 1.9.继承方式 1.10.final关键字 2.继承与组合 3.多态 3.1.多态概念 3.2.多态实现条件 3.3.重写 3.4.向上转型和向下转

  • Java中继承、多态、重载和重写介绍

    什么是多态?它的实现机制是什么呢?重载和重写的区别在那里?这就是这一次我们要回顾的四个十分重要的概念:继承.多态.重载和重写. 继承(inheritance) 简单的说,继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(下面会讲到,这种方式叫重写)的方式,产生一个新的类型.继承是面向对象的三个基本特征--封装.继承.多态的其中之一,我们在使用JAVA时编写的每一个类都是在继承,因为在JAVA语言中,java.lang.Object类是所有类最根本的基类(或者叫父类.超类),如果

  • Java超详细讲解类的继承

    目录 写在前面 1.子类的创建 1.1子类的创建方法 1.2调用父类中特定的构造方法 2.在子类中访问父类成员 3.覆盖 3.1覆盖父类中的方法 3.2用父类的对象访问子类的成员 4.不可被继承的成员和最终类 实例java代码 写在前面 类的继承可以在已有类的基础上派生出来新的类,不需要编写重复的代码,提高了代码的复用性,是面向对象程序设计的一个重要的特点,被继承的类叫做父类,由继承产生的新的类叫做子类,一个父类可以通过继承产生多个子类,但是与C++不同的是Java语言不支持多重继承,即不能由多

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

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

随机推荐