Android入门基础 Java基础学习笔记dya9 多态,抽象类和接口
来源:互联网 发布:秦义绝捏脸中文数据 编辑:程序博客网 时间:2024/05/16 06:10
1.多态
A.多态概述:事物存在的多种形态
B.多态前提:
a.要有继承关系
b.要有方法重写
c.要有父类引用指向子类对象。Animal a = new Cat();a.eat();//猫吃鱼
2.多态中成员访问特点之成员变量
成员变量:编译看左边(父类),运行看左边(父类)
3.多态中成员访问特点之成员方法
成员方法:编译看左边(父类),运行看右边(子类)动态绑定
4.多态中成员访问特点之静态方法
静态方法:编译看左边(父类),运行看左边(子类)
静态和类相关,算不上重写,所以访问还是左边的
只有非静态的成员方法,编译看左边,运行看右边
5.超人故事解释成员访问特点
6.多态的好处:
a.提高了代码的维护性(继承保证)
b.提高了代码的扩展性(由多态保证)
开发中很少在创建对象的时候使用父类引用指向子类对象,直接创建子类对象更方便, 可以使用子类中的特有属性和方法。
当做参数的时候使用多态最好,因为扩展性强。
instanceof 判断前边的引用是否是后边的数据类型。
7.抽象类:用abstract修饰
abstract class 类名{ } public abstract void className();
抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者接口
抽象类不能实例化 按照多态的方式,由具体的子类实例化
抽象类的子类要么是抽象类,要门重写抽象类中的所有抽象方法
8.抽象类的成员特点
成员变量:既可以是变量,也可以是常量,abstract不能修饰成员变量
构造方法:有,用于子类访问父类数据的初始化
抽象类成员方法的特性:
a.抽象方法:强制要求子类做的事情
b.费抽象方法:子类继承的事情,提高代码的复用性
抽象类中可以没有抽象方法,为了不让其他类创建本类对象,交给子类完成。
Abstract和static不能共存,被abstract修饰的方法没有方法体,被static修饰的可以用类名.调用,但是类名.调用抽象方法没有意义。
Abstract和final不能共存,被abstract修饰的方法强制子类重写,被final修饰的不忍子类重写,两者相互矛盾。
Abstract和private不能共存,被abstract修饰的是为了让子类看到并且强制重写,被private修饰不让子类访问,两者矛盾。
9.接口的概述及其特点
接口概述:从狭义角度讲就是指Java中的interface,从广义的角度讲对外提供规则的都是接。
接口用关键字interface表示:interface 接口名{ }
类实现接口用implements表示:class 类名 implements 接口名 { }
接口不能被实例化,因为调用抽象方法没有意义,按照多态的方式来实例化。
接口的子类可以是抽象类(但是意义不大),可以死具体类(要重写接口内的所有抽象方法)
10.类与类,类与接口,接口与接口的关系
类与类:继承关系,只能单继承,可以多层继承
类与接口:实现关系,可以单思想,也可以多实现,并且还可以在继承一个类的同时实现多个接口。
接口与接口:继承关系,可以单继承,也可以多继承
11.抽象类和接口的区别
a.成员区别:
*抽象类:
成员变量:可以变量,也可以常量
构造方法:有
成员方法:可以抽象,也可以非抽象
*接口:
成员变量:只可以常量
构造方法:无
成员方法:只可以抽象
b.设计理念区别:
抽象类:被继承体现的是”is a ”的关系,抽象类中定义的是该继承体系的共性功能
接口:被实现体系的是”like a” 的关系,接口中定义的的是该继承体系的扩展功能
12.接口成员特点
成员变量:只能是常量,并且是静态公共的
默认修饰符:public static final (三个关键字无顺序)
构造方法:接口中无构造方法
成员方法:只能是抽象方法
默认修饰符:public abstract
- Android入门基础 Java基础学习笔记dya9 多态,抽象类和接口
- Android入门基础 Java基础学习笔记dya9 多态,抽象类和接口
- java 从零开始,学习笔记之基础入门<抽象类_接口_多态>(十三)
- 黑马程序员--Java基础学习笔记之抽象类和接口、内存结构分析、Java APIs
- java基础学习总结——接口和抽象类
- java基础学习-抽象类、接口
- Java语言基础:抽象类和接口
- java基础---->接口和抽象类
- Java基础:抽象类和接口
- java基础------抽象类和接口
- 《java基础》抽象类和接口
- Java基础---抽象类和接口
- Java基础:接口和抽象类
- Java基础(9):抽象类和接口
- java基础抽象类和接口区别
- java基础 抽象类和接口
- java基础之抽象类和接口
- java基础之抽象类和接口
- hdu1531King【差分约束系统】
- Android进程通信之一:两种序列化方式
- 求职计划第一天
- 乘法逆元
- html通过css来设置半透明背景
- Android入门基础 Java基础学习笔记dya9 多态,抽象类和接口
- Java Servlet生成Json格式数据
- ubuntu安装图像处理库PIL
- RF结合Page Object模式web自动化测试架构
- 安卓杂乱基础
- eclipse出现 Intent cannot be resolved to a type解决方法。
- Android布局中的layout_weight和weightSum属性的详解及使用
- HDOJ 1233 还是畅通工程
- android下camera数据流的分析