面向对象——继承1

本文详细介绍了Java中的继承和重写概念。通过创建一个Person父类和Student子类,展示了如何使用`extends`关键字实现继承。讨论了继承带来的好处,如代码复用,并指出构造器不能被继承。同时,解释了重写的要求,如方法名、参数列表必须一致,并对比了重写与重载的区别。最后,代码示例演示了如何在子类中调用父类方法和定义新的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.zy;
继承

/**
 * 子类---》继承于父类
 * 1.创建一个父类(基类)Person
 * 2.创建一个子类(派生类)Student
 * 3.用extends 来实现继承
 * 4.继承的好处:
 *  ¥父类定义的内容,子类可以直接拿过来用了
 *  注意:
 *         1.private修饰的内容,子类实际上也继承了,只是因为封装的特性,
 *      阻碍了直接调用,但是提供了间接调用的方式,可以调用

*                    2.构造器不可以被继承;

权限修饰符:
*      【1】private(私人):只在当前类中可以访问
*      【2】default(缺省):在同一个包下的其他类中可以访问
*      【3】protected(保护):最大到不同包下的子类中可以访问
*      【4】:public(公共):再整各项目中都可以访问

*      总结:
*      属性:一般用, Private ,default和 Protected修饰
*    类名:一般用, public,default

继承:重写
*        1.发生在子类和父类当中,当子类对父类提供的方法不满意时,要对父类的方法进行重写
*           2.重写有严格的格式要求:
*     子类的方法名必须和父类一致,参数列表的个数类型顺序也要和父类一致
*          3.重载和重写的区别:
*        重载(overload):在同一个类中方法名相同形参列表不同时,构成了重载
*        重写(override):在不同的类中子类对父类提供的方法不满意时,要对父类的方法进行重写

4.父类中的静态方法子类可以继承,但是不可以重写

5.java中是单继承关系

 英文位置修饰符返回值方法名参数抛出异常方法体
重载overload同一个类中无关无关相同不同无关不同
重写override子类和父类父类的权限修饰符低于子类的权限修饰符父类的返回值类型大于子类相同相同小于等于不同


*/
public class Person {
    //属性
  private String name;
    private  int age;
    private  int height;
    //定义set,get方法

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getHeight() {
        return height;
    }

    public void setHeight(int height) {
        this.height = height;
    }
    //定义方法
    public void eat(){
        System.out.println("正在吃饭...");
    }
    public void sleep(){
        System.out.println("睡得香甜...");
    }
}

package com.zy;

public class Student extends Person {

  //子类的属性
    private int id;
    private String hobby;
    //set,get方法

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }

    //子类的方法
    public void study(){
        System.out.println("正在艰难的学习中......");
    }
}package com.zy;

public class Test {
    public static void main(String[] args) {        
//创建对象
        Student s = new Student();       
 //赋值
        s.setName("顺");
        s.setAge(18);
        s.setHeight(180);
        s.setId(4022);
        s.setHobby("楠");
        System.out.println(s.getName() + "~~" + s.getAge() + "~~" + s.getHeight() + "~~" + s.getId() + "~~" + s.getHobby());
        //调用方法
        s.eat();
        s.sleep();
        s.study();

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值