zoukankan      html  css  js  c++  java
  • 面向对象----多态、类型的转换

    多态:

    同一个"接口",,因不同的实现而执行不同的套作。

    多态的优点:

    提高代码的扩展性和可维护性。

    多态实现的前提:

    1.继承。

    2.方法的重写。

    3.父类引用指向子类。

    多态在Java中实现的步骤:

    1.建立继承关系。

    2.在编译时将父类作为形参(范围大点,模糊点)。

    3.在运行时将子类对象作为实参,执行的子类重写后的方法

    ---------------------------------------------------------------------------------------------------------

    public class Animal {
    String name;
    int age;

    public Animal(){

    }
    public Animal(String name,int age){
    this.name=name;
    this.age=age;
    }

    public void shout(){
    System.out.println("动物在叫.....");
    }

    public class Cat extends Animal {
    @Override
    public void shout() {
    System.out.println("喵喵喵~~~~~~~~~~~");
    }
    }

    ---------------------------------------------------------------------------------

    public class Dog extends Animal {
    @Override
    public void shout() {
    System.out.println("汪汪汪~~~~~~~~~~~");
    }

    }

    ---------------------------------------------------------------------------------

    public class TestAnimal {


    public static void testShout(Animal a) {
    System.out.println("比赛开始....");
    a.shout();
    }

    public static void main(String[] args) {
    Dog dog = new Dog();
    testShout(dog);
    Cat cat = new Cat();
    testShout(cat);

    }
    }

    当利用父类创建子类时发生了向上转型:
    1.上转型对象不能操作子类新增的成员变量和方法。
    2.上转型对象可以操作子类继承或重写的成员变量和方法
    3.如果子类重写了父类的某个方法,上转型对象调用该方法时,是调用的重写方法。

    instance of运算符判断对象是否为指定类型的实例。如果是指定类型的实例返回值为true,否则返回false
    * 语法: 对象 instanceof 类型
    * 防止在类型转换时出现ClassCastException异常。
    * if(a instanceof Cat){
    * Cat c=(Cat)a;
    * }

  • 相关阅读:
    vs2013 调用只有dll文件的动态库(一)
    剑指offer 34.二叉树中和为某一值的路径
    JQuery中bind和unbind函数与onclick绑定事件区分
    实现 select中指定option选中触发事件
    页面中的checkbox多选值获取
    页面中href链接的碰撞
    页面中onclick事件引号问题
    页面间传输参数(两种传参方法)
    js的非空校验
    时间控件,选择日期
  • 原文地址:https://www.cnblogs.com/benpaozhimeng/p/6978688.html
Copyright © 2011-2022 走看看