当前位置: 首页 > news >正文

Java的多态快速入门

基本介绍:

方法或对象具有多种形态,是面向对象的第三大特征,多态是建立在封装和继承之上的

方法的多态:

package com.polymorphic.poly;public class PolyMethod {public static void main(String[] args) {//方法重载体现多态B b = new B();System.out.println(b.sum(10,20));System.out.println(b.sum(10,20,30));//我们通过不同的参数个数去调用sum方法//因此对于sum方法来说,就是多态的体现//方法重写体现多态A a = new A();a.say();b.say();}
}
class A{public void say(){System.out.println("A类的say()方法被调用");}
}
class B extends A{public int sum(int n1,int n2){//和下面的sum构成重载return n1 + n2;}public int sum(int n1,int n2,int n3){return n1 + n2 + n3;}public void say(){System.out.println("B类的say()方法被调用");}
}

对象的多态:

(1)一个对象的编译类型和运行类型可以不一致

(2)编译类型在定义对象时,就确定了,不能改变

(3)运行类型是可以变化的

(4)编译类型看定义时 = 号的左边,运行类型看 = 号的右边

Animal animal = new Dog();
//可以让父类的引用指向子类的对象
//animal的编译类型Animal,运行类型Doganimal = new Cat();
//animal的运行类型变成了Cat,编译类型仍然是Animal

一个赋类的对象引用可以指向它的子类,并且运行时是以运行类型为主的

public class Animal {public void cry(){System.out.println("Animal cry() 动物在叫唤");}
}
public class Cat extends Animal{@Overridepublic void cry() {System.out.println("Cat cry() 小猫喵喵叫");}
}
public class Dog extends Animal{@Overridepublic void cry() {System.out.println("Dog cry() 小狗汪汪叫");}
}
public class polyObject {public static void main(String[] args) {//体验对象多态的特点//animal编译类型就是Animal,运行类型就是DogAnimal animal = new Dog();//执行到下面第十行时,animal的运行类型是Dog,所以它就会去找Dog的cryanimal.cry();//animal此时的运行类型是Dog,输出小狗汪汪叫//此时animal的编译类型是Animal,运行类型是Catanimal = new Cat();animal.cry();//输出小猫喵喵叫}
}

快速入门案例:

使用多态的机制来解决主人喂食物的问题

动物类:

public class Animal {private String name;public Animal(String name) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}
public class Cat extends Animal{public Cat(String name) {super(name);}
}
public class Dog extends Animal{public Dog(String name) {super(name);}
}
public class Pig extends Animal{public Pig(String name) {super(name);}
}

食物类:

public class Food {private String name;public Food(String name) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}
public class Bone extends Food{public Bone(String name) {super(name);}
}
public class Fish extends Food{public Fish(String name) {super(name);}
}
public class rice extends Food{public rice(String name) {super(name);}
}

主人类:

public class Master {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public Master(String name) {this.name = name;}//使用多态机制,可以统一的管理主人喂食物的问题//animal的编译类型是Animal,可以指向(接收)Animal子类的对象//food编译类型是Food,可以指向(接收)Food子类的对象public void feed(Animal animal,Food food){System.out.println("主人" + name + "给" + animal.getName() + "吃" + food.getName());}//    //主人给小狗喂食骨头
//    public void feed(Dog dog,Bone bone){
//        System.out.println("主人" + name + "给" + dog.getName() + "吃" + bone.getName());
//    }
//    public void feed(Cat cat,Fish fish){
//        System.out.println("主人" + name + "给" + cat.getName() + "吃" + fish.getName());
//    }
}

测试类:

public class poly01 {public static void main(String[] args) {Master tom = new Master("tom");Dog dog = new Dog("dahuang");Bone bone = new Bone("大棒骨");tom.feed(dog,bone);Cat xiaohua = new Cat("xiaohua");Fish fish = new Fish("黄花鱼");tom.feed(xiaohua,fish);//添加 给小猪喂米饭Pig xiaohua1 = new Pig("xiaohua");rice rice = new rice("米饭");tom.feed(xiaohua1,rice);}
}

http://www.dtcms.com/a/472016.html

相关文章:

  • 莆田社交网站安卓app软件开发教程
  • 做php网站的环境小说网站的内容做
  • 海洋网站建设公司自动生成logo的软件
  • 品牌设计网站怎么做标小智logo在线设计
  • 实时热搜榜榜单湖南seo推广多少钱
  • 高端网站建设价格经常使用( )对网页的布局进行控制
  • 大麦网抢票:基于Wireshark协议分析
  • 如何做一个静态网站健康管理 网站建设
  • 沈阳蓝德网站建设wordpress 后台登陆美化
  • 淘宝网站开发用到哪些技术受欢迎的徐州网站建设
  • 网站建设代码结构如何做网站网站代理
  • 网站刚刚开始怎么做优化推广seo
  • 企业网站的常见类型有网站备案是空间备案还是域名备案
  • 备案需要写网站建设方案书蚌埠百度做网站
  • 连接物理与数字世界 昂瑞微如何炼成射频芯片领域的领航者?
  • 二叉树的迭代遍历
  • 运营推广是什么工作sem优化软件哪家好
  • 广州网站建设哪个平台好胖子马wordpress模板:q8免费版
  • 青岛 建网站域名做网站
  • 企业网站的制作原则网站系统建设系广告经营者
  • 平谷网站建设公司视觉设计网站推荐
  • 蚌埠网站制作哪里有朝阳区住房和城乡建设部网站
  • 商城网站建设 优帮云徐州小学网站建设
  • 中国空间站成为全人类太空之家可以免费观看电视电影
  • c++ const_cast 用法
  • SOUI里实现打印预览续
  • C++基础:(十)vector 类的基础使用
  • 网站内容架构wordpress无法创建目录
  • 专门做茶叶会的音乐网站浙江省住房和城乡建设厅官网
  • 网站搜索算法成都 网站建设培训