首页 > 其他分享 >继承

继承

时间:2022-10-02 10:33:04浏览次数:44  
标签:继承 子类 void static 父类 super public

继承

Object类

快捷键:control+h显示继承关系

在Java中,所有的类都直接或间接继承Object类

Java中只有单继承,没有多继承

package oop.inherit;

public class Person {
    //public
    //protected
    //default
    //private
    private int money = 10;
    public void say(){
        System.out.println("hello");
    }

    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        this.money = money;
    }
}

package oop.inherit;
//Student类继承类Person类,拥有父类的除了private的所有属性和方法
public class Student extends Person{
  //隐藏了super()代码,调用了父类的构造器
  super();//显示定义构造器,只能在父类和子类中选一个
  //this();

}

package oop.inherit;

public class Test {
    public static void main(String[] args) {
        Student student = new Student();
        int m = student.getMoney();
    }
}

super注意点

  1. super调用父类构造方法时,必须在构造方法的第一个
  2. super只能出现在子类的方法或构造方法为中
  3. super和this不能同时调用构造方法
  4. super():调用父类构造方法,this():调用本类构造方法

方法重写

package oop.way.rewrite;

public class B {
    public void test(){
        System.out.println("B");
    }
    public static void test1(){
        System.out.println("static B");
    }
}
package oop.way.rewrite;
//A是B的子类
public class A extends B{
    @Override
    public void test() {
        System.out.println("A");
    }
    public static void test1(){
        System.out.println("static A");
    }
}
package oop.way.rewrite;

public class Rewrite {
    public static void main(String[] args) {
        //非静态方法:子类重写类父类方法,方法的调用和右边类型有关
        A a = new A();
        a.test();
        B b = new A();//父类的引用指向子类
        b.test();


        //静态方法:方法的调用只和左边的类型有关
        A a1 = new A();
        a.test1();
        B b1 = new A();
        b.test1();
    }
}

输出结果:

A
A
static A
static B

重写:需要有继承关系,子类重写父类的方法

  1. 方法名相同
  2. 参数列表相同
  3. 修饰符范围只能扩大不能缩小(大口袋接小口袋):抛出的异常:ClassNotFoundException

标签:继承,子类,void,static,父类,super,public
From: https://www.cnblogs.com/qt0312/p/16748355.html

相关文章

  • 继承中的初始化和加载
    继承关系中的执行顺序代码packageonjava8.extend;/***继承关系中的执行顺序*/classInsect{privateinti=9;protectedintj;{Sy......
  • 1.2 继承
    最后一种给元素添加样式的方式:继承。比如通常会给<"body">元素加上font-family,里面的所有祖先元素都会继承这个字体,就不必给页面的每个元素明确指定字体了body{font......
  • 继承
    继承继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模extends的意思是“扩展”。子类是父类的扩展JAVA中类只有单继承,没有多继承!继承是类和类之间的一种关......
  • 继承
    1.继承是Java中实现代码重用的重要手段。Java中只支持单继承,即一个类只能有一个直接父类。Java。Object是所有Java类的祖先。2.在子类中可以根据实际需求对父类继承的方......
  • 继承与static-阅读EmployeeTest.java代码
    尝试阅读EmployeeTest.java代码。importjava.util.*;/***ThisprogramteststheEmployeeclass.*@version1.112004-02-19*@authorCayHorstmann*/pub......
  • 继承方式(6种)
    JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一。那么如何在JS中实现继承呢?让我们拭目以待。JS继承的实现方式既然要实现继承,那么首先我们得有一个父类,代码如下://......
  • Django当中自定义的用户模型类(继承django中的AUTH模型类)
    Django认证系统中提供的用户模型类及方法很方便,我们可以使用这个模型类,但是字段有些无法满足项目需求,因此需要自己再自定义字段。Django提供了django.contrib.auth.models.......
  • JS中面向对象编程(OOP)的基本原理——this关键字、原型链、构造函数、继承
    面向对象编程(ObjectOrientedProgramming),是软件开发过程的主要方法之一。在OOP中,使用对象和类组织代码来描述事物及其功能。虽然点符号是访问对象属性的有效方法(如myobj.......
  • 原型(prototype)、原型链和原型继承
    一、原型 prototype 和 __proto__ 每个对象都有一个__proto__属性,并且指向它的prototype原型对象每个构造函数都有一个prototype原型对象prototype原型对象里的c......
  • Flask 学习-79.Flask-RESTX 参数校验reqparse 解析器继承与更新
    前言通常我们会为每个资源创建不同的解析器,如果多个解析器直接有共同的参数,可以写一个包含所有共享参数的父解析器。然后使用copy()复制一个父类解析器同一个参数覆盖......