面向对象之继承

本文介绍了Java中的继承概念,展示了如何通过`extends`关键字创建子类,并解释了继承的作用,如代码复用和提高开发效率。同时,讨论了Java的单继承特性以及子类如何通过`super`关键字访问父类的属性和方法。此外,文章还阐述了方法重写的原则,包括方法名和参数列表的匹配以及访问权限的限制,通过实例说明了如何在子类中扩展和定制父类的功能。

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

1、什么是继承

继承就是子类继承父类的特征和行为,使得子类对象具有父类的属性和方法

2、继承有什么用

通过继承可以快速创建新的类,实现代码的复用,提高程序的可维护性,节省大量创建新类的时间,提高开发效率和开发质量。

3、怎么继承

当几个对象拥有相同的特征或者行为时,我们就可以考虑使用继承。

使用extends关键字

public class B extends A{

}

1.B类继承A类,则称A类为超类(superclass)、父类、基类,B类则称为子类(subclass)、派生类、扩展类。
2.java 中的继承只支持单继承,不支持多继承。
3.虽然java中不支持多继承,但有的时候会产生间接继承的效果,例如: class Cextends B,class B extends A,也就是说,C直接继承B,其实C还间接继承A。
4.java中规定,子类继承父类,除构造方法和被private修饰的数据不能继承外,剩下都可以继承。

package day721;

/**
 * author:sww
 * date:2022/7/21 8:57
 * 案例:
 */
public class Person {
    private String name;
    private int age;
    public Person() {
        System.out.println("f");

    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public void eat(){
        System.out.println("吃饭");
    }
    public void sleep(){
        System.out.println("睡觉");
    }
}

package day721;

/**
 * author:sww
 * date:2022/7/21 8:59
 * 案例:
 */
public class Student extends Person{
    private String name;
    private int age;
    public Student() {
        System.out.println("z");
        System.out.println(getAge());
    }
}

package day721;

/**
 * author:sww
 * date:2022/7/21 8:59
 * 案例:
 */
public class Teacher extends Person{
    private double money;



    public void jiaoshu(){

    }
}

当在子类想使用父类的属性和方法时,可以使用super关键字

public void jiaoshu(){
        super.eat();
    
    }

5、方法重写

当子类继承父类,子类想拓展父类的方法时,可以使用方法重写

在java中方法的重写是建立在java类的三大特性之一:继承性的基础之上的,没有继承性也就不能谈方法的重写。方法的重写是当程序中父类的某一个方法并不能满足子类的需求时,子类可以重新定义该方法的内容与功能来满足子类的需求的一种操作。

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

2.子类重写的方法访问权限不能小于父类被重写的方法的权限;子类不能重写父类中声明的private 权限的方法

3、被final修饰的方法不能被重写

package Super;

public class test01 {
    public static void main(String[] args) {
        Cat c = new Cat();
        c.yiDong();
    }
}

    class Animal{
        public void move(){
            System.out.println("animal move");
        }
    }

    class Cat{
        //对move进行重写
        public void move(){
            System.out.println("cat move");
        }
        public void yiDong(){
            this.move();
           move();
        }
    }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值