首页 > 其他分享 >卡码网学习系列-8.抽象类、继承、封装、多态

卡码网学习系列-8.抽象类、继承、封装、多态

时间:2024-09-09 09:52:09浏览次数:11  
标签:卡码 makeSound 子类 多态 Animal 抽象类 父类 方法 public

抽象概念


一些概念

abstract class Animal {
    // 具体实现的方法
    public void eat() {
        System.out.println("The animal is eating.");
    }

    // 抽象方法
    public abstract void makeSound();
}

class Dog extends Animal {
    // 提供抽象方法的具体实现
    @Override
    public void makeSound() {
        System.out.println("The dog barks.");
    }
}

class Cat extends Animal {
    // 提供抽象方法的具体实现
    @Override
    public void makeSound() {
        System.out.println("The cat meows.");
    }
}

public class Main {
    public static void main(String[] args) {
        // 实例化Dog对象
        Animal myDog = new Dog();
        myDog.eat();    // 输出:The animal is eating.
        myDog.makeSound(); // 输出:The dog barks.

        System.out.println(); // 打印空行以分隔输出

        // 实例化Cat对象
        Animal myCat = new Cat();
        myCat.eat();    // 输出:The animal is eating.
        myCat.makeSound(); // 输出:The cat meows.
    }
}
  • public的使用(参考博文-.java 文件只能有一个 public 类且该类的名称必须与文件名相匹配
    • 在Java中,每个源文件(.java文件)只能有一个公共(public)类,且该类的名称必须与文件名相匹配。 这意味着只能有一个类被声明为public,而其他类则不能被声明为public
    • 非公共类可以存在于同一个源文件中,并且可以有多个非公共类。这些非公共类在同一个文件中可以被其他类使用,但不能再从其他文件中访问。
    • 内部类的访问修饰符可以是public、protected、private或默认访问(即不使用任何访问修饰符),且不限数量(可以声明多个公共内部类)。如果内部类声明为public,则可以从其他文件中访问;如果内部类声明为protected、private或默认访问,则只能在同一文件中访问。
  • 抽象类(参考博文-Java中的抽象类和接口
    • 有抽象方法
    • 不能实例化,用于继承
  • 继承
    • 基于一个现有的类创建一个新的类,这个过程称为派生。新创建的类被称为子类(或派生类),而提供基础的类被称为父类(或基类、超类)。继承使得子类能够继承父类的特性和行为,这样可以减少代码的重复,提高代码的可维护性和可扩展性。
    • 子类获取了父类中声明的所有的属性和方法,并且可以声明自己的属性和方法,实现功能的拓展。
  • 重写
    重写(Overriding) 是多态性的一种表现,它指的是在子类中提供一个与父类中具有相同名称、相同参数列表(父类抽象方法可省略)和相同返回类型的方法的具体实现。
  • 多态(同一行为的不同表现形式
    在 main 方法中,我们实例化了 Dog 和 Cat 对象,并将它们赋给 Animal 类型的引用。当我们调用 makeSound 方法时,Java虚拟机会根据对象的实际类型来决定调用哪个类的方法。这就是多态性的体现:同一个方法调用(在这里是 makeSound)在不同的对象上执行不同的代码。
  • 要求:
    • 继承
    • 重写
    • 父类指向子类对象Animal myDog = new Dog();
      加油

标签:卡码,makeSound,子类,多态,Animal,抽象类,父类,方法,public
From: https://blog.csdn.net/qq_51706641/article/details/142033838

相关文章

  • 多态
    多态:polymorphism概述有了封装才有面向对象,有了面向对象才有继承和多态。什么是多态:同类型的对象,表现出的不同形态。多态的表现形式:父类类型对象名称=子类对象;多态的前提:有继承或实现关系(实现与接口有关)有父类引用指向子类对象,Fuf=newZi();要有方法重写。......
  • java面试(9.8)接口和抽象类的区别
    接口:        定义了一组方法规范,但不提供这些方法的具体实现。接口的作用:定义规范:接口主要用于定义一个规范,规定了实现该接口的类必须遵守的规则。实现多继承:一个类可以实现多个接口,从而继承多个接口中定义的方法。解耦合:接口提供了一种解耦合的方式,使得代码......
  • Day07 字符串part01| LeetCode 344. 反转字符串,541. 反转字符串II,卡码网:54.替换数字
    反转字符串344.反转字符串classSolution{publicvoidreverseString(char[]s){intlens=s.length;intright,left;if(lens%2!=0)//奇数个{right=lens/2+1;left=lens/2-1......
  • 简单谈谈方法重载和方法重写(编译时多态和运行时多态)
    这篇文章来聊一聊方法重载和重写到底是有什么区别,重载实现的是编译时多态,而方法重写实现的是运行时多态,那什么又是编译时多态和运行时多态呢?定义一个Animal类,publicclassAnimal{publicvoidsay(intage){System.out.println("我的年龄是"+age);}......
  • 【Java 学习】:抽象类&接口
    ✨                         人逢喜事精神爽,月到中秋分外明    ......
  • 【Java 基础】:三大特征之多态
    ✨                         杏花疏影里,吹笛到天明    ......
  • java多态的编译执行
    多态执行“编译看左边,运行看右边”“成员变量,静态方法看左边;非静态方法:编译看左边,运行看右边。”意思是:当父类变量引用子类对象时(Fuf=newZi();),在这个引用变量f指向的对象中,他的成员变量和静态方法与父类是一致的,他的非静态方法,在编译时是与父类一致的,运行时却与子类......
  • Python中的方法重写与多态:解锁编程的无限可能
    在编程的世界里,灵活性与扩展性往往是衡量一个语言是否强大、易于维护的关键指标。Python,作为一种被广泛使用的高级编程语言,不仅以其简洁易读的语法赢得了众多开发者的喜爱,更因其支持多种面向对象特性而备受青睐。其中,“方法重写”与“多态”便是两个核心概念,它们不仅能够极......
  • Python中的方法重写与多态:解锁编程的无限可能
    在编程的世界里,灵活性与扩展性往往是衡量一个语言是否强大、易于维护的关键指标。Python,作为一种被广泛使用的高级编程语言,不仅以其简洁易读的语法赢得了众多开发者的喜爱,更因其支持多种面向对象特性而备受青睐。其中,“方法重写”与“多态”便是两个核心概念,它们不仅能够极大地提高......
  • 11-6类的多态和多态性
    多态指的是一类事物有多种形态,比如动物有多种形态:猫、狗、猪classAnimal:#同一类事物:动物deftalk(self):passclassCat(Animal):#动物的形态之一:猫deftalk(self):print('喵喵喵')classDog(Animal):#动物的形态之二:狗deftalk(self)......