首页 > 其他分享 >多态

多态

时间:2023-12-04 22:32:10浏览次数:27  
标签:obj 多态 Person Student 父类 super

多态

为什么产生:学生是学生,学生也是

1.语法
    Student
    
    Person
    
    Stuednt student = new Stuedent();
	Person person = new Person();  

2.接口和类都可以产生多态 is a
3.实际开发中,面向接口编程
4.多态调用的时候,如果父类或者接口里面没有这种字段或者方法,那么我们也不能去调用
5.多态强制  instanceof关键字判断类型
    真实类型 新变量名 = (真实类型) 变量名
public static void getNum(Object obj){
    if(obj instanceof Student){
        Student obj1 = (Student) obj;
        System.out.println(obj1.num);
        }

super关键字

//需求:虽然重写父类方法,但是依然调用父类方法
public class Student extends Person {
    public Student() {
        super("zs");
    }

    @Override
    void eat(){
        super.drink();
        System.out.println("student eat food");
    }

    
}

注意:不能在static修饰的类中调用super

标签:obj,多态,Person,Student,父类,super
From: https://blog.51cto.com/u_16079786/8682052

相关文章

  • go接口多态性
    浅谈Golang接口:作用、应用场景及实际应用马哥Linux运维 2023-12-0418:42 发表于江苏引言:    Golang(Go)作为一门现代的静态类型编程语言,提供了许多强大的特性,其中之一便是接口(interface)。接口是Golang中的一个核心概念,它具有广泛的应用场景,可以帮助开发者实现代码的......
  • Day14 多态知识点综合
    1.方法重写的定义重载(overload)是在同一个类中的具有多个相同方法名,参数列表不同(的方法(返回类型可以不同),构造方法、普通方法、抽象方法都可以重载;重写(override)是在子类继承父类的时候重写,可以用@Override检查是否是重写方法,方法重载是一个类的多态性的表现,而方法重写是子类与父类......
  • 四. 多态性和虚函数
    文章参考:《C++面向对象程序设计》✍千处细节、万字总结(建议收藏)_白鳯的博客-CSDN博客1.多态性概述所谓多态性,就是不同对象接收不同消息时,产生不同的动作。这样就可以用相同的接口访问不同的函数,从而实现一个接口,多种方法。从实现方式上看,多态性分为两种:编译时多态:在C++......
  • 实验5 继承和多态
    实验任务三pets.hpp#pragmaonce#include<iostream>#include<string>usingnamespacestd;classMachinePets{protected:stringnickname;public:MachinePets(conststrings):nickname(s){};public:virtualstringtalk()=0;s......
  • 实验五 继承和多态
    实验任务1publisher.hpp#pragmaonce#include<iostream>#include<string>usingstd::cout;usingstd::string;usingstd::endl;classpublisher{public:publisher(conststring&s="");public:virtualvoi......
  • 实验5 继承和多态
    实验任务31#include<iostream>2#include<string>3usingnamespacestd;4classMachinePets5{6private:7stringnickname;8public:9MachinePets(conststrings):nickname{s}{}10stringget_nickname()const{return......
  • 实验五 继承和多态
    task3machinepets.hpp#include<iostream>#include<string>usingnamespacestd;classMachinePets{public:MachinePets(conststrings);MachinePets();stringget_nickname()const;public:virtualstringtalk(......
  • 实验5 继承和多态
    实验任务1源代码:#pragmaonce#include<iostream>#include<string>usingstd::cout;usingstd::endl;usingstd::string;//发行/出版物类:Publisher(抽象类)classPublisher{public:Publisher(conststring&s="");//构造函数......
  • 实验五 继承和多态
    Task3:pets.hpp:#include<iostream>#include<string>usingnamespacestd;classMachinePets{public:MachinePets(conststrings):nickname(s){}conststringget_nickname(){returnnickname;}virtualstringta......
  • 实验5 继承和多态
    实验任务3pets.hpp #pragmaonce#include<iostream>#include<string>usingnamespacestd;classMachinePets{private:stringnickname;public:MachinePets(conststrings):nickname{s}{}stringget_nickname()const{returnnicknam......