zoukankan      html  css  js  c++  java
  • 多态&抽象&接口

    多态:

    多态的概念:

    多态:事物的多种状态

    对象的多态性:同一个对象,可能具有不同的名称,同一个对象,有不同类型的引用指向它,本质:同一个物体有不同的名称和描述。

    类型的多态性:同一个类型,可能具有不同的子类实现。

    多态的前提:

    1.要有父子类的继承(实现)关系。

    2.有方法的重写。

    3.父类的引用指向子类的对象。

    代码示例:

     1 class Demo01_多态概述 {
     2     public static void main(String[] args) {
     3         Animal a = new Cat();
     4         a.speak();
     5     }
     6 }
     7 
     8 class Animal {
     9     public void speak() {
    10         System.out.println("动物发声");
    11     }
    12 }
    13 
    14 class Cat extends Animal {
    15     @Override
    16     public void speak() {
    17         System.out.println("喵喵喵喵喵");
    18     }
    19 }

    在多态中成员变量的访问特点:

    代码示例:

     1 class Demo02_多态中成员变量访问特点 {
     2     public static void main(String[] args) {
     3         Animal a = new Cat();
     4         System.out.println(a.age);
     5         System.out.println(a.color);
     6     }
     7 }
     8 
     9 class Animal {
    10     int age = 2;
    11 }
    12 
    13 class Cat extends Animal {
    14     int age = 3;
    15     String color = "black";
    16 }

     向上向下转型:

    使用父类的引用指向子类的对象

    抽象类:

     抽象方法:只有方法声明,而没有方法实现的方法,就叫抽象方法。

    父类中的方法在子类中没有得到应用,但是为了规范方法的命名格式,父类中必须有这个方法,让子类来重写这个方法,父类中的方法没用,所以可以把它的方法体去掉,只留下

    一个方法名,这种没有方法体的方法叫做抽象方法,抽象方法的修饰符为 abstract  ,包含抽象方法的类为抽象类,抽象类也必须用abstract修饰。

    抽象类的特点:

    1.抽象类和抽象方法都需要用absract关键字来修饰。

    2.抽象类和抽象方法的关系:

    抽象方法所在的类必须是抽象类,

    抽象类中未必存在抽象方法。

    3.抽象类的实例化:

    抽象类不能直接实例化,定义抽象类的子类,由子类来创建对象,调用方法。

    抽象类子类:

    在子类中,将父类的抽象方法全部重写(实现),子类就是一个普通类,可以创建对象

    在子类中,没有将父类中的全部抽象方法全部实现,子类就还是一个抽象类,还需要abstract关键字类修饰子类。

    • 用abstract修饰的类,叫做抽象类。
    • 抽象类不能创建对象,因为类是不完整的。
    • 抽象类的作用,是规范子类的方法和属性
    • 抽象类可以写属性,可以写方法,也可以写抽象方法。
    • 抽象方法必须在抽象类中
    • 子类必须实现  抽象父类中的所有抽象方法
    • 抽象类可以继承抽象类,可以不实现父类方法。

    接口:

    定义:java中用于定义方法命名的规范就是接口。

    接口使用Interface关键字,编译也是生成一个.class文件

       interface  接口名称{

      方法声明的定义;

    }

    在接口中,只可以声明抽象方法(只能定义方法起名字的规则)

    类可以实现接口,使用implements关键字

    实现:接口中只有方法名称的定义,在类中把接口方法的真正完成逻辑写出来。

      class  类名称  implements  接口名称{

      对接口中方法的实现。

    }

    接口的实例化:不能直接实例化,定义实现类,实现接口,类创建对象,对象调用方法。

    类与类  继承关系

    类与接口  实现关系

    接口与接口  继承关系

    类只能继承一个类,但是类可以实现多个接口

  • 相关阅读:
    捕获控制台输出信息
    .net 值类型变量赋值需要注意
    《河北省实施〈中华人民共和国道路交通安全法〉办法》
    在Win7应用程序中使用盾牌图标
    32位WIndows 7的“快速启动”,重启后丢失的问题,被确认是一个bug
    在本地网页中,让flash可以访问本地文件
    WPF 3D编程中,摄像机的位置很重要
    让Windows7任务栏图标显示Windows菜单(恢复,最小化,关闭)
    Joomla 书籍
    Joomla! 1.5 Template Toolbar简化Joomla模板做成的工具
  • 原文地址:https://www.cnblogs.com/ywzbky/p/10608176.html
Copyright © 2011-2022 走看看