面向对象三大特征之多态(代码片段)

dabu dabu     2023-04-17     589

关键词:

 多态

1 程序中的多态; 声明父类,实例化子类;

 

要建的类

技术图片

 

 

对动物喂食

package com.lv.tai;

public class Person 
    
    //给动物喂食
    public void feed(Dog dog)
        
        System.out.println("喂食");
        dog.eat();
    
    
    public void feed(Bird bird)
        
        System.out.println("喂食");
        bird.eat();
    
    
    public void feed(Snake snake)
        
        System.out.println("喂食");
        snake.eat();
    
    
    //新添加子类的话,必须在这里提供方法的重载
    public void feed(Cat cat)
        
        System.out.println("喂食");
        cat.eat();
    
    
    public void feed(Fish fish)
        
        System.out.println("喂食");
        fish.eat();
    

 

利用多态给动物喂食

package com.lv.tai;

public class PersonSuper 
    
    public void feed(Animal animal)
        
        //就算你添加100个子类  当前的feed方法也不需要修改
        //我们这里利用了多态的特性
        System.out.println("喂食");
        animal.eat();//如果传递的是子类 就会执行对应的子类eat方法
    

 

 

测试类

package com.lv.tai;

public class Test4 

    public static void main(String[] args) 
        
        //分别养了一只狗 一条蛇 一条鱼 一只鸟
        //必须的喂养这4个动物
        //吃午餐的时间到了
        
        test1();
        System.out.println("++++++++++++++++++");
        test2();
        
        
    
    
    public static void test2()
        PersonSuper person=new PersonSuper();
        
        Animal animal1=new Bird();
        person.feed(animal1);
        
        Animal animal2=new Dog();
        person.feed(animal2);
        
        Animal animal3=new Fish();
        person.feed(animal3);
        
        Animal animal4=new Snake();
        person.feed(animal4);
        
        Animal animal5=new Cat();
        person.feed(animal5);
    
    
    public static void test1()

        Person person =new Person();
        
        //喂鸟
        Bird bird=new Bird();
        person.feed(bird);
        
        //喂蛇
        Snake snake=new Snake();
        person.feed(snake);
        
        //喂鱼
        Fish fish=new Fish();
        person.feed(fish);
        
        
        //喂狗
        Dog dog=new Dog();
        person.feed(dog);
    

 

2 多态的使用场景;

 父类作为形参, PersonSuper.java

:父类作为返回值; MaiChongSuper.java

3 向上转型; 实例化的子类,将地址赋值父类的声明;

4 向下转型;将父类的引用,转换成子类的引用;

package com.lv.pm;

import com.lv.tai.Animal;
import com.lv.tai.Dog;

public class Test1 

    public static void main(String[] args) 
        //什么是向上转型
        Animal animal=new Dog();
        //声明一个父类,实例化一个子类,然后赋值给父类的引用,我们就叫他为向上转型
        
        
        //向下转型:就是将我们父类的引用转换成子类的引用
        Dog dog1=(Dog) animal;//这个过程就叫做向下转型
        
        Dog dog2=(Dog) animal;
        
        //dog1和dog2他们除了地址不一样所有的东西都一样对属性的调用,对方法的调用
    

 

5 instanceof关键字;用来判断引用是否是某一个具体的对象的类型;

package com.lv.pm;

import com.lv.tai.Animal;
import com.lv.tai.Bird;
import com.lv.tai.Cat;
import com.lv.tai.Dog;
import com.lv.tai.MaiChongSuper;

public class Test3 

    public static void main(String[] args) 
        MaiChongSuper mcs=new MaiChongSuper();
        
        Animal am=mcs.sell("bird");
        
        if(am instanceof Dog )//如果这个am是dog类型
            
            Dog dg=(Dog)am;//是狗才可以把他强制转换成一条狗
            //我可以调用dog里面独有的方法
            dg.eat();
        else if(am instanceof Cat)
            Cat ct=(Cat)am;
            //我可以调用cat里面独有的方法
            ct.eat();
        else if(am instanceof Bird)
            Bird bird=(Bird)am;
            bird.eat();
            
        
        
        System.out.println("一切正常结束,啥也没发生");
    

 

golang如何体现面向对象三大特征之多态?(代码片段)

...多态数组基本介绍变量(实例)具有多种形态。面向对象的三大特征,在Go语言,多态特征是通过接口实现的。可以按照统一的接口来调用不同的实现。这时接口变量就呈现不同的形态。快速入门在前面的Usb接口... 查看详情

面向对象三大特征之多态(代码片段)

 多态1程序中的多态;声明父类,实例化子类; 要建的类  对动物喂食packagecom.lv.tai;publicclassPerson//给动物喂食publicvoidfeed(Dogdog)System.out.println("喂食");dog.eat();publicvoidfeed(Birdbird)System.out.println("喂食");bird.eat();publicvoidfeed(Sn... 查看详情

面向对象的三大特征之三——多态

...面的内容有过详细的记录,即重复调用的代码块—方法和面向对象的特性之二—继承。二、对象的多态性——引用类型转换。1.向上转型(自动转型)——子类对象自动转换为父类对象。1classFather2{3publicvoidspeak()4{5System.out.println( 查看详情

面向对象三大特征之继承,多态

//面向对象三大特性//继承//概念:子类可以继承父类的一切//方法重写:在子类里面对父类的方法进行重写//特点:单继承:一个子类只能有一个父类,一个父类可以派生出多个子类//override:重写//overload:重载,编程多态//parent::值... 查看详情

测开之面向对象进阶篇・《多态》(代码片段)

面向对象三大特征面向对象编辑的三大特征:封装、继承、多态。封装:客观的失误封装成类(将数据和方法放在一个类中构成了封装)。继承:python中一个类可以继承于一个类,也可以继承多个类,... 查看详情

python入门-6面向对象编程:07面向对象三大特征(封装继承多态)-继承(代码片段)

一:面向对象三大特征介绍  Python是面向对象的语言,也支持面向对象编程的三大特性:继承、封装(隐藏)、多态。  封装(隐藏)    隐藏对象的属性和实现细节,只对外提供必要的方法。相当于将“细节封装... 查看详情

java面对对象三大特征之继承多态(代码片段)

面对对象三大特征继承、多态继承1.继承的概念:2.继承的实现:3.继承的好处与弊端:4.super5.继承中的成员访问特点以及访问修饰符:JAVA中的访问修饰符6.方法重写以及继承的注意事项:多态1.多态的概念2.多态中成员访问特点3.多态的... 查看详情

面向对象三大特征(代码片段)

面向对象三大特征:封装、继承、多态继承是多态的前提,如果没有继承,就没有多态。封装性在Java当中的体现:方法就是一种封装关键字private也是一种封装(一旦使用了private进行修饰,那么本类当中仍然可以随意访问。但是... 查看详情

面向对象的三大特征:继承封装多态(代码片段)

面向对象:面向对象专注于由谁来解决这个过程,而调用者无需关注对象实现的细节编程特点:出现了一个个的类,从类中拿到对象,通过对象直接解决问题类:具有一系列相同属性(特征)和方法(行为)的个体的集合称为类   ... 查看详情

java入门二十二面向对象三大特征之多态

面向对象的三大特征:继承、封装、多态,今天学的是多态,看完后有什么不懂的地方可以问小编,也可以评论里问,我们一起解决。多态(polymorphism)在编程语言和类型论中,多态指为不同数据类型的实体提供统一的接口。多... 查看详情

面向对象的三大特性之多态(代码片段)

#面向对象的三大特性之多态#多态由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同#多态的概念指出了对象如何通过他们的属性和动作来操作及访问,而不需要考虑他们具体的类#多态表明了动态(运行时)绑定... 查看详情

golang如何体现面向对象三大特征之封装?(代码片段)

...的好处golang如何体现封装封装的实现基本介绍Golang仍然有面向对象编程的继承、封装和多态的特性,只是实现的方法和其它OOP语言不一样,下面我们来看看Golang是如何实现封装的。封装介绍封装(encapsulation)就是... 查看详情

面向对象三大特性之多态与多态性(代码片段)

一、多态‘‘‘多态:同一事物的多种形态‘‘‘#文件的多种形态:classFile:defclick(self):passclassTextFile(File):defread(self):print(‘文本文件双击可以查看内容‘)classExeFile(File):defexe(self):print(‘可执行文件双击可以执行‘)file1=TextFile()file2... 查看详情

java中面向对象三大特性之——多态(代码片段)

多态的概述: 多态是继封装、继承之后,面向对象的第三大特性。生活中,比如跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也是不一样的。可见,同一行为,通过不同的... 查看详情

面向对象的三大特征,封装继承多态的个人理解以及代码分析(代码片段)

面向过程:我们以前使用的是面向过程编程,你需要清除每个实现步骤,每个步骤每行代码都要仔仔细细的编写,     不知道过程就找不到结果,找到实现过程就可以得到实现结果。     例如:我们在外打工租房子... 查看详情

java面向对象三大基本特征(代码片段)

...意事项:4.多态4.1多态思想4.2 多态中的转型如何理解面向对象?简单的说就是把事物和操作事物的方法汇集到一起,形成一个相互依赖的整体。下面我们来了解面向对象的基础知识1.类和对象1.1概念 查看详情

c++面向对象三大特征封装继承和多态知识总结(代码片段)

面向对象三大特征:封装,继承,多态;一、封装:该公开的就公开话,该私有的就隐藏掉,主要是由public,private实现;作用是便于分工和分模块,防止不必要的扩展;二、继承:... 查看详情

5_面向对象-中之面向对象的特征三:多态性(代码片段)

1.多态性的理解:可以理解为一个事物的多种形态。2.何为多态性:对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)举例:Personp=newMan();Objectobj=newDate();3.多态性的使用:虚拟方法调用  >有了对象... 查看详情