面向对象
一、抽象类,接口,多态
1,先掌握抽象类,接口的基本语法 2,通过案例来理解 (1),既生瑜何生亮,为什么有了抽象类还要有接口? (2),什么时候使用抽象类,什么时候使用接口? (3),何为多态?为什么要用多态? 二、抽象类
1,定义: 当类存在一些无法确定具体实现的方法时,这个时候就需要把方法设置为抽象方法,而类也需要设置为抽象类 而这些抽象方法的具体实现将交给子类来实现。 2,引入: 比如说,创建一个动物类Animal,动物类有进食的方法,但是因为每种动物的进食是不一样的,所以这个时候,我们可以把该方法设置为抽象的。 而具体的实现交给狗类,猫类来实现。 虽然具体的实现是由子类来实现,但是父类作为一个抽象类,它决定了作为动物应该拥有的行为,比如进食,所以抽象类可以认为就是一个模板 3,掌握语法: Abstract 1.抽象方法必须放在抽象类中 2.抽象类可以没有抽象方法(没有意义了) 3.抽象类不可以被new 必须要实现类中的抽象方法(匿名内部类) 4.抽象类存在的意义就是被继承,(子类为抽象类例外) 5.抽象类可以有构造方法(子类通过super来调用,完成初始化) 6.abstract修饰方法时不能和private、static同时存在(内部类时例外) 7.abstract在任何情况下不能和final配合使用 4,练习 实现上面分析的动物类,猫,狗等子类,目的是掌握抽象类的基本使用方式 5,抽象类的特点,判断下面的语句是否正确 (1),可以使用new关键字来创建抽象类对象? (2),抽象类中只能有抽象方法?不对(private、static、final不能修饰方法) (3),抽象类中不可以没有抽象方法?错 (4),如果父类是抽象类,则子类必须实现父类的抽象方法? (5),抽象类不能有构造方法 重写:可以选择重写方法,当父类方法不满足需求的时候,我们需要重写 抽象类--抽象方法:非抽象的子类必须去重写父类的所有抽象方法(模板) 三、接口
1,定义: 当我们的类中只有常量和抽象方法时,那么这个类就有一个新的名字--接口 接口是一种特殊的抽象类,接口更多是代表一种扩展的功能或者标准 2,引入: 比如,当我们肚子饿了,我们有时候会说,只要能吃的就行,那么“能吃的”就是一种标准 什么是能吃的,面包,牛奶,巧克力等等,具体怎么吃还是交给子类来实现。 3,掌握语法 Interface 1.接口是一个特殊的“抽象类” 2.接口中的方法必须是抽象方法 3.接口中的所有方法默认添加public abstract 4.接口中可以定义属性,默认添加public static final 工作中通常会定义一个存放常量的接口 5.接口中不可以包含构造方法、代码块 6.接口可以定义内部类,内部类不会默认添加任何修饰符(忽略) 7.接口不能实例化,存在的意义就在于“实现”(除非该类为抽象类) 接口不是类,没有构造方法,所以不能被实例化