栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java面向对象

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java面向对象

继承(extends)
父类(基类/超类) 子类(派生类)

格式: class 子类名 extends 父类名 {...}

注意事项: 1.Java支持多层继承 2.子类不能继承父类私有方法 3.通过super访问父类构造方法 4.子类中所有构造方法默认都会访问父类的无参构造方法 5.子类的每一个构造方法的第一条语句默认都是:super();

Java在运行过程中,首先加载class,static静态随之加载;随后进行初始化,创建成员变量和成员方法以及构造方法的分配地址值和内存空间 即:先加载类空壳,后初始化变量和方法

instanceof 测试它左边的对象是否是它右边的类的实例

方法重写
子类中出现了和父类中方法声明一模一样的方法,相当于子类覆盖了父类 方法重写作用:子类在继承父类的同时有自己特有的特点时使用方法重写

super
super代表父类存储空间的标识

注意: 1.子类中必须有一个访问父类的构造方法的入口 2.this和super语句必须出现在第一条语句上(否则父类会进行多次初始化) 3.子类构造方法中第一句之前默认有一个super();它仅仅表示分层初始化(先初始化父再子)

super和this区别:

super(访问父类)    this(访问本类)
调用成员变量    super.成员变量    this.成员变量
调用构造方法    super(...)    this(...)
调用成员方法    super.成员方法    this.成员方法
多态
同一个对象在不同时刻体现出来的不同状态,提高了代码的扩展性

前提
1.要有继承关系 2.要有方法重写 3.要有父类引用指向子类对象 父类 f = new 子类();

三种方式
具体类多态

抽象类多态

接口多态

成员访问特点
1.成员变量 编译看左边,执行看左边 (因为对象的类型是父类,调用父类变量) 2.构造方法 创建子类对象的时候,访问父类构造方法对父类进行初始化 3.成员方法 编译看左边,执行看右边 (成员方法存在方法重写,父类被子类覆盖,显示子类) 4.静态方法 编译看左边,执行看左边 (静态只和类相关,不算方法重写,仍是父类)

对象间的转型问题
多态中会存在无法使用子类特有功能的情况。若重新创建(new)子类,会增加内存空间并且在逻辑上不合理,此时可以采用转型

向上转型 Father f = new Son(); f顶着父类的帽子,看起来是父类实际是子类

向下转型 Son s = (Son) f; 摘下帽子,外表上(形式上)由父类化为子类,实际上一直是子类没变

内存空间分配
过程: 首先方法区依次加载所有类,随后静态main方法随之加载; 随后栈中加载引用类型Animal a,并在堆中分配地址值和内存空间,栈中的引用类型通过地址值指向堆中new Dog(); 随后执行Dog d =(Dog) a;,把a赋值(地址值)给d,将Dog d通过地址值指向堆中new Dog(); 随后执行a = new Cat();,首先创建Cat()的地址值和内存空间,再将新地址值赋给a;

最后Dog dd = (Dog) a; 会出现运行异常:ClassCastException, 即类型转换异常(不能猫转为狗),一般出现在向下转型中

接口
关键字:interface

类实现接口用implements表示: class 类名 implements 接口名 {}

特点

1.接口不能实例化,但是可通过多态的方式进行实例化 2.接口的子类一般是具体类(也可以是抽象类,但是意义不大),要重写接口中所有抽象方法

接口中成员特点: 变量 接口中的变量默认是常量,并且是静态的 默认修饰符:public static final 构造方法 没有构造方法,因为接口主要是用来扩展程序的,没有具体存在 所有的接口子类都继承自Object 成员方法 只能是抽象方法 默认修饰符:public abstract

类与接口
类与接口之间是实现关系,可以单或多实现,还可以在继承一个类的同时实现多个接口

接口与接口之间是继承关系,可以多继承

抽象类定义共性功能;接口定义扩展功能
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/845931.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号