黑马程序员技术交流社区

标题: 关于多态的知识点。 [打印本页]

作者: 细听风语为梧桐    时间: 2016-9-1 19:18
标题: 关于多态的知识点。
1 ,多态前提
        a:要有继承关系或者实现关系。
        b:要有方法重写。
        c:要有父类或者父接口引用指向子类对象。
2  ,多态中的成员访问特点之成员变量
       成员变量:编译看左边(父类),运行看左边(父类)
多态中的成员访问特点之成员方法
        成员方法:编译看左边(父类),运行看右边(子类)
  多态中的成员访问特点之静态成员方法
        静态方法:编译看左边(父类),运行看左边(父类)。
        (静态和类相关,静态方法算不上重写,所以,访问还是左边的)
        只有非静态的成员方法,编译看左边,运行看右边,其他的都是编译和运行都看右边
3,多态的好处
     1)        提高了代码的维护性(继承保证)
     2)        提高了代码的扩展性(由多态保证)
4,多态的弊端
        父类引用虽然指向了子类对象,但不能使用子类的特有属性和行为。

注:父类引用不能使用子类中的特有成员变量和成员方法,如果想使用,需要向下转型
5,抽象类特点
        a:抽象类和抽象方法必须用abstract关键字修饰
                抽象类格式:abstract class 类名 {}
                抽象方法:        public abstract void eat();
               注意:抽象方法没有方法体大括号{}
        b:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口
6,10 抽象类的成员特点
    抽象类的成员特点
a:成员变量:既可以是变量,也可以是常量。
abstract是否可以修饰成员变量?不能修饰成员变量
b:构造方法:有,但不能实例化。
        用于子类访问父类数据的初始化。
c:成员方法:既可以是抽象的,也可以是非抽象的。
可以有抽象方法 限定子类必须完成某些动作
也可以有非抽象方法 提高代码服用性
7,抽象类的成员方法特性:
        a:抽象方法 强制要求子类做的事情。
        b:非抽象方法 子类继承的事情,提高代码复用性

8,接口的特点
* a:接口用关键字interface表示       
                * interface 接口名 {}
        * b:类实现接口用implements表示
                * class 类名 implements 接口名 {}
        * c:接口不能实例化
                * 那么,接口如何实例化呢?
                * 按照多态的方式来实例化。由具体的子类实例化。其实这也是多态的一种,接口多态。
        * d:接口的子类
                * a:可以是抽象类。但是意义不大。
                * b:可以是具体类。要重写接口中的所有抽象方法

作者: 52java    时间: 2016-9-1 20:14
666666666666666666666
作者: gcno93    时间: 2016-9-1 20:32
很厉害的说




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