首页 > 其他分享 >类的继承性和多态性

类的继承性和多态性

时间:2024-09-19 15:23:18浏览次数:7  
标签:makeSound 多态性 void 多态 Dog Animal 继承性 class

在Java中,类的继承性和多态性是面向对象编程的核心概念之一。下面是这两个概念的简要解释:


继承性

继承性是指一个类(称为子类或派生类)可以继承另一个类(称为父类或基类)的属性和方法。这样做的好处是可以重用代码,减少重复劳动,并建立类之间的层次结构。 

特点:

1. 代码重用:子类继承父类的属性和方法,不需要重新编写相同的代码。
2. 层次结构:可以创建一个类层次结构,其中每个类都是另一个类的特定版本。
3. 访问修饰符:继承的成员变量和方法默认是 `private` 的,但可以通过 `protected` 或 `public` 修饰符改变访问级别。

java中的继承

Java只支持单继承,即一个类只能继承一个父类。
可以使用关键字 extends 来实现继承。

class Animal {
    void eat() {
        System.out.println("Eating");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("Barking");
    }
}

public class Test {
    public static void main(String[] args) {
        Dog d = new Dog();
        d.eat(); // 继承自Animal类
        d.bark(); // Dog类特有的方法
    }
}

多态性

多态性是指允许不同类的对象对同一消息做出响应的能力,即同一个接口使用不同的实例而执行不同操作。多态性分为编译时多态(静态多态)和运行时多态(动态多态)。

特点

1. 接口统一:通过统一的接口调用不同的实现。
2. 动态绑定:在运行时确定方法的执行。
3. 提高可扩展性:可以轻松添加新的类,而不需要修改现有的代码。

Java中的多态

通过抽象类和接口实现多态。
方法的重写(Override)是实现运行时多态的关键。

代码:

abstract class Animal {
    abstract void makeSound();
}

class Dog extends Animal {
    void makeSound() {
        System.out.println("Bark");
    }
}

class Cat extends Animal {
    void makeSound() {
        System.out.println("Meow");
    }
}

public class TestPolymorphism {
    public static void main(String[] args) {
        Animal myAnimal = new Dog();
        myAnimal.makeSound(); // 输出 "Bark"

        myAnimal = new Cat();
        myAnimal.makeSound(); // 输出 "Meow"
    }
}

在这个例子中,Animal是一个抽象类,它有一个抽象方法 makeSound()。Dog和 Cat 类继承自 Animal 类并实现了 makeSound() 方法。在 TestPolymorphism 类中,Animal 类型的引用 myAnimal 可以指向 Dog 或 Cat对象,根据对象的类型调用相应的 makeSound() 方法。

继承性和多态性是Java面向对象编程中非常重要的概念,它们使得代码更加灵活和可扩展。
 

标签:makeSound,多态性,void,多态,Dog,Animal,继承性,class
From: https://blog.csdn.net/2401_85045690/article/details/142182380

相关文章

  • 11-6类的多态和多态性
    多态指的是一类事物有多种形态,比如动物有多种形态:猫、狗、猪classAnimal:#同一类事物:动物deftalk(self):passclassCat(Animal):#动物的形态之一:猫deftalk(self):print('喵喵喵')classDog(Animal):#动物的形态之二:狗deftalk(self)......
  • windows核心编程 第三章,跨越进程边界共享内核对象,对象句柄的继承性,改变句柄的标志,命名
    windows核心编程3.3跨越进程边界共享内核对象3.3.1对象句柄的继承性3.3.2改变句柄的标志3.3.3命名对象3.3.4终端服务器的名字空间3.3.5复制对象句柄文章目录windows核心编程3.3跨越进程边界共享内核对象3.3.1对象句柄的继承性3.3.2改变句柄的标志3.3.3命名......
  • Java中的多态性(Polymorphism)
    Java中的多态性(Polymorphism)是面向对象编程(OOP)中的一个核心概念,它允许同一个接口或方法在不同对象上具有不同的实现方式。多态性极大地提高了代码的灵活性和可扩展性,使得程序能够以一种统一的方式处理不同类型的对象。以下是对Java中多态性的详细解释,包括其定义、实现方式、......
  • 使用 mypy 时Python中的继承和多态性不起作用
    我正在寻找用mypy做一些标准的多态性,我以前从未使用过它,而且到目前为止它并不直观。基类classContentPullOptions:passclassTool(Protocol):asyncdefpull_content(self,opts:ContentPullOptions)->str|Dict[str,Any]:...子类classGoogle......
  • Java笔试|面试 —— 对多态性的理解
    谈谈对多态性的理解:一个事物的多种形态(编译和运行时状态不一致性)实现机制:通过继承、重写和向上转型(Objectobj=new子类())来实现。1.广义上的理解子类对象的多态性,方法的重写;方法的重载;子类对象的多态性:编译时是父类对象,运行时是不确定的子类对象。(体现不一致性)......
  • 类的继承性(Java)
    本篇学习面向对象语言的第二特性——继承性。1.为什么需要继承我们来举个例子:我们知道动物有很多种,是一个比较大的概念。在动物的种类中,我们熟悉的有猫(Cat)、狗(Dog)等动物,它们都有动物的一般特征(比如能够吃东西,能够发出声音),不过又在细节上有区别(不同动物的吃的不同,叫声不......
  • 11_1、多态性:概念及运算符重载
    多态性多态的概念和类型多态的类型多态的实现运算符重载运算符重载的概念和规则概念规则运算符重载为类的成员函数双目运算符单目运算符运算符重载为类的友元函数双目运算符重载单目运算符重载多态的概念和类型消息:消息在C++编程中指的是对类的成员函数的调用。......
  • C++派生类与继承性
    继承和派生其实都是一回事,只是说法不同罢了。        如:子类继承了父类,父类派生了子类。那么什么是继承呢 首先,如上图所示是一个动物种类区分图。猫和狗都属于动物这一种类,而猫又可以细分为加菲猫、布偶猫等种类。我们发现这些细分出来的单体在拥有上一级别的共性......
  • 继承性
    一.继承性二.类的继承格式继承后有父类的非私有属性和方法三.重写父类方法(实际调用时用的是子类重写过后的)......
  • Java练习(综合运用继承性、多态性、接口)
    在这个练习中,我们定义了一个接口`Animal`,其中包含一个方法`sound()`。之后,我们创建了一个基类`Mammal`,实现了`Animal`接口,并提供了一个默认的`sound()`方法实现。接着,我们定义了两个继承自`Mammal`的子类`Dog`和`Cat`,分别重写了`sound()`方法。在`main`方法中,我们创建了一个......