<<Java>> 继承

简介: <<Java>> 继承

继承的概念


继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。


生活中的继承


249486910daf46fead51c9e56e558b7d.png🐕和🐱和🤾属于哺乳动物,🐍和🐊属于爬行动物。

哺乳动物和爬行动物又属于动物。

所以继承需要符合的关系是:is-a,父类更通用,子类更具体。

虽然哺乳动物和爬行动物都是属于动物,但是两者的属性和行为上有差别,所以子类会具有父类的一般特性也会具有自身的特性。


类的继承格式


1. class 父类 {
2. } 
3. class 子类 extends 父类 {//注意extends是继承的一个关键字
4. }


继承的作用


为什么需要继承?写代码的过程中,比如需要写一个动物乐园,难道我们需要每一种动物都要创建一个类,写很多很多的重复代码吗??当然不需要,继承就可以解决这个代码冗余的问题。


下面我们通过例子来说明:假设我们写一个动物乐园,定义很多种动物


不用继承


🐕🐕🐕🐕🐕🐕  狗 类 🐕🐕🐕🐕🐕🐕

    class dog{
        String name;//名字
        String color;//颜色
        String food;//食物
        int age;//年龄
        public dog(String name, String color, String food, int age) {
            this.name = name;
            this.color = color;
            this.food = food;
            this.age = age;
        }
    }


🐱🐱🐱🐱🐱🐱 猫 类 🐱🐱🐱🐱🐱🐱

    class cat{
        String name;
        String color;
        String food;
        int age;
        public cat(String name, String color, String food, int age) {
            this.name = name;
            this.color = color;
            this.food = food;
            this.age = age;
        }
    }

🕊️🕊️🕊️🕊️🕊️🕊️ 鸟 类  🕊️🕊️🕊️🕊️🕊️🕊️

    class brid{
        String name;
        String color;
        String food;
        int age;
        public brid (String name, String color, String food, int age) {
            this.name = name;
            this.color = color;
            this.food = food;
            this.age = age;
        }
    }

用了继承

public class demo {
    class Animalpark{//这是一个父类 Animalpark动物乐园
        String name;
        String color;
        String food;
        int age;
        public Animalpark (String name, String color, String food, int age) {
            this.name = name;
            this.color = color;
            this.food = food;
            this.age = age;
        }
    }
    class dog extends Animalpark{//这是一个狗类继承了动物乐园
        public dog(String name, String color, String food, int age) {
            super(name, color, food, age);//用super调用父类的构造方法
        }
    }
    class cat extends Animalpark{//这是一个猫类继承了动物乐园
        public cat(String name, String color, String food, int age) {
            super(name, color, food, age);//用super调用父类的构造方法
        }
    }
    class bird extends Animalpark{//这是一个鸟类继承了动物乐园
        public bird(String name, String color, String food, int age) {
            super(name, color, food, age);//用super调用父类的构造方法
        }
    }
}

总结

这个Animalpark类就可以作为一个父类,然后狗类、猫类和鸟类继承这个类之后,就具有父类当中的属性和方法,子类就不会存在重复的代码,维护性也提高,代码也更加简洁,提高代码的复用性(复用性主要是可以多次使用,不用再多次写同样的代码)


继承的限制

继承支持单继承、多重继承、不同类继承同一个类,但是不支持多继承,看下图

83b229ddefc942f780909f24f314aaf6.png


final 关键字


通常继承不超过三层,而为了限制继承的层数,就可以使用 final 这个关键字

使用 final 关键字声明类,就是把类定义定义为最终类,不能被继承

使用 final 关键字声明方法,就是代表这个方法不能被重写


相关文章
|
12月前
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
980 60
|
10月前
|
Java
Java 面向对象编程的三大法宝:封装、继承与多态
本文介绍了Java面向对象编程中的三大核心概念:封装、继承和多态。
517 15
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
Java 编译器
Java——类与对象(继承和多态)
本文介绍了面向对象编程中的继承概念,包括如何避免重复代码、构造方法的调用规则、成员变量的访问以及权限修饰符的使用。文中详细解释了继承与组合的区别,并探讨了多态的概念,包括向上转型、向下转型和方法的重写。此外,还讨论了静态绑定和动态绑定的区别,以及多态带来的优势和弊端。
298 7
Java——类与对象(继承和多态)
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
234 3
|
Java
在Java多线程编程中,实现Runnable接口通常优于继承Thread类
【10月更文挑战第20天】在Java多线程编程中,实现Runnable接口通常优于继承Thread类。原因包括:1) Java只支持单继承,实现接口不受此限制;2) Runnable接口便于代码复用和线程池管理;3) 分离任务与线程,提高灵活性。因此,实现Runnable接口是更佳选择。
243 2
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
192 2
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
298 1