黑马程序员技术交流社区

标题: 【成都校区】多态 学习笔记 [打印本页]

作者: Kirazx    时间: 2019-4-25 09:00
标题: 【成都校区】多态 学习笔记
多态&抽象类&接口
多态:
        1.多态定义:一个对象多种形态
        2.要使用多态的前提
                1.继承关系,实现关系
                2.父类引用指向子类对象  
                                 Animal a = new Cat();  
                                 a 是父类的引用  new Cat 是子类的对象
                  3.方法的重写
    3.多态访问的特点
                1.变量
                编译看父类,运行看父类
                2.方法
                编译看父类,运行看子类
        4.多态的好处和弊端
                1.好处:简化了代码,提高了代码的扩展性
                2.弊端:不能调用子类特有的方法(因为多态编译看父类)
        5.向上和向下转型
                 1.多态就是向上转型
                 2.让父类对象转化成子类,就是向下转型
                    思考:为什么要向下转型呢?
                        答:因为要使用子类特有的方法
                        在强转时,为了不报错  ,可以使用  instance 关键字 ,判断是否是同一个内容
                    useAnimal(Animal a){
               
                        if(a instance Cat){
                                  Cat c = (Cat)a;
                                  c.特有方法();
                        }
                }
               
抽象类       
    1.什么是抽象类
            用abstract 进行修饰的类就是一个抽象类
        2.什么是抽象方法
                1.用abstract 进行修饰的方法就是一个抽象方法
                   注意:抽象类可以有抽象方法,也可以没有
                           但是有抽象方法,那么类就必须是抽象类
                2.该方法不能拥有方法体
                  
        3.抽象类的成员特点
                1.抽象类的成员变量可以有
                        1.变量
                        2.常量
                2.抽象类方法还能有有参构造和无参构造
                        问题:抽象类不能创建对象,那么为什么还能有构造方法呢?
                3.抽象类中的方法
                    抽象类可以有抽象方法,也可以是普通方法
       
    4.抽象类的特点
                1.抽象类和抽象方法必须使用abstract关键字修饰
            public abstract class 类名{}
            public abstract 返回值类型 方法名();
                2.抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类
        3.抽象类不能实例化,但是可以通过多态的方式创建子类对象
        4.抽象类的子类
           要么重写抽象父类中所有的抽象方法
           要么子类本身也是一个抽象类
   
接口
        1.接口就是一系列的规范,举例:比如  插线板
        2.接口的定义规则
                2.1  interface    写法:  public interface 接口名
                3.接口的实现类
                implements    public class  A implements 接口
        4.接口的实现类需要去重写接口中的抽象方法法 ,如果不去重写,子类就是对应的抽象类
        5.类和接口的关系
                类和类的关系 --> 单继承或者是多重继承
                类和接口的关系 --> 可以多实现  class A  implements Inter1,Inter2
                接口的和接口的关系 --> 可以多继承
                面试题: java中支持多继承吗?
                        1.类和类不支持多继承
                        2.接口和接口支持多继承  interface A extends Inter1 ,Inter2{}
        6.接口中成员变量的特点:是常量  用public static final 修饰的常量
        7.接口中成员方法的特点:是抽象方法 是 public abstract  修饰的方法
        注意:
        抽象类是为了保证体系的完整
        而接口是为了功能的扩展
                 




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2