Java 继承:迈入抽象化的第一站

本文探讨了Java编程中的继承概念,包括子类继承父类的属性和方法,以及方法重写的原则和应用场景。通过示例展示了如何创建父类和子类,以及子类如何调用和重写父类的方法。强调了代码复用和访问权限修饰符的作用,同时提供了代码实例以解释这些概念。
摘要由CSDN通过智能技术生成


类别:学生类
-大学生
-中学生
-小学生

语法

              -关键字:extends(继承)
              -格式:public class 子类名extends 父类名{ }

-关键字:是一门计算机语言的词汇
-标识词: package class interface int(数据类型)
-修饰词:
-访问修饰符权限:public private protected (缺省的)
-static final abstract
-连接词:extends implements

  • 逻辑:if else while for do switch case default return break
  • 特殊类型:void
  • 值:null true false
  • 行为词:new
  • Object 是所有类的隐式父类

继承:子类 与 父类

-子类继承父类的所有东西
-子类以及子类对象可以调用继承到自己身上
-调用的最终执行场景一定是实例(对象)来调用
-我们应该分开思考:写的过程 代码执行时
-属性和方法都可以被继承到
-实现代码复用,多个子类共同的属性和方法都定义在父类中,所有的子类都复用这一份代码
-访问权限的限制:
-访问权限修饰符的作用:
-规定 类、属性、方法 在项目不同域之间的调用权限
-域:不同的文件 不同的文件夹 不同的类
-类的成员之间的范围也就是代码块的范围
-public——在整个项目中都有(scr lib)
-private——只在整个类的{ }中存在
-protected——在同包下以及不同包下的子类中都存在
-缺省的——同包下都有
-属性变量:不需要初始化
-参数变量:不需要初始化——调用方法是必须穿入对应类型的数据
-局部变量:必须初始化

局部变量关系

-属性变量:
-创建对象时默认初始化赋值为0
-参数变量:
-调用方法时必须穿入对应类型的数据
-局部变量:
-没有机会去修改或者重新赋值

方法重写:

-子类之间大致相同,各自有着各自的特点
-子类可以在自己类中定义自己这一类的属性和方法
-子类之间的行为名必须一致,行为可以不一致
-在父类中把行为定义的抽象一些
-子类可以重写父类的方法然后继续扩展
**语法 **
-子类重写父类的方法,一般要求出方法体之外,都要与父类一直
-最好使用@Override检查重写的方法是否正确
-子类及子类对象会优先调用重写之后的方法
-子类、孙子类 向下时一直继承的,方法全部继承自己上一级的父类
优点
-代码逻辑 差异 结构 可以体验出来
-代码复用

Code

-创建一个父类Student,写下其属性、打印信息的方法、父类read方法,打印输出(可以在同一个类下面写很多个类,⚠️:只有主类可以加public,非主类不得➕public)

public class Student {
    String name;
    private String pass;
    protected int adr;
    int id;
    public void printInfo(){
        System.out.println("姓名:"+name);
        System.out.println("密码:"+pass);
        System.out.println("地址:"+adr);
        System.out.println("ID:"+id);
    }
    public void read() {
        System.out.println("父类:读书了!");
    }
}

-子类UNStudent继承父类Student,子类调用父类的read方法,重写父类方法

class UNStudent extends Student {
    public void read(){
        super.read();
        System.out.println("大学生:考试成绩!");
    }
}

-子类MidStudent继承它的上一级父类UNStudent,在这里继承的是他的上一级父类,在子类中也可以加上它自己的方法

class MidStudent extends UNStudent{
    public void read(){
        super.read();
        System.out.println("中学生:考试成绩!");
    }
    public void Text(){
        System.out.println("考试");
    }

}

-再创建一个类,主方法中分别创建父类、子类对象,分别调用其方法

class Manage {
    public static void main(String[] args) {
        Student student=new MidStudent();
        student.printInfo();
        student.read();

        UNStudent unStudent=new MidStudent();
        unStudent.printInfo();
        unStudent.read();

        MidStudent midStudent=new MidStudent();
        midStudent.printInfo();
        midStudent.read();
        midStudent.Text();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值