2021-08-24-------面向对象

本文详细探讨了Java中的多态性,包括父类引用指向子类对象,方法重写的重要性。接着介绍了抽象类的概念,强调其不能实例化,需要子类重写抽象方法。同时对比了抽象类与接口的区别,接口作为规范集合,支持多实现。还讨论了内部类的使用,匿名内部类的简化写法,以及Object类的toString方法。最后提到了equals和hashCode方法的重写,以及克隆机制。
摘要由CSDN通过智能技术生成

1.多态:多种形态

多态表现:

*父类的引用指向子类的实例对象。

*使用多态必须有继承关系

*应该有方法重写,没有重写多态没有意义

子类转父类什么都不要,父类转子类加强制转换符号,直接将一个定义好的父类转子类会抛异常

仅在多态的情况下可以强转

2.抽象类,由abstract修饰,含有抽象方法的的类叫抽象类

*没有方法体的方法叫作抽象方法

*抽象类有构造方法

*抽象类不能直接实例化,需要借助子类重写抽象方法

*抽象类不能实例化,普通类可以

*抽象方法权限必须高于默认

3.接口!!!!!接口不是类

*如果一个类里面方法全是抽象方法,变量都是常量,可以把类转换为一个接口

*interface 表示接口,里面只有一系列的抽象方法

*接口默认修饰public abstract

*接口没有构造方法,接口里面只有常量,且要赋初值,不能实现类做,因为没有构造方法

*接口没有继承,只能被实现 implements

*一个类实现一个接口,必须重写所有抽象方法

*继承只能单继承,接口可以多实现

4.类,接口,抽象类的区别

*类,接口

接口不能用于实例化对象。 接口没有构造方法。 接口中所有的方法必须是抽象方法。 接口不能包含成员变量,除了 static final变量。 接口不是被类继承了,而是要被类实现。 接口支持多“继承”。

*抽象类和接口的区别 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。 接口中不能含有静态代码块以及静态方法,而抽象类是可以有静态代码块和静态方 法。 一个类只能继承一个抽象类,而一个类却可以实现多个接口。 接口体现一种规范,规范:一般都是一些功能的集合

*类、接口和抽象类的总结 思想(关键) 类、抽象类、接口都是类: 类是完全具体(不能包含抽象成分) 抽象类是半抽象半具体 完全抽象的(不能包含具体的方法) 抽象类一般体现一种共性,天生就被继承 接口体现一种规范,代表一些能力的集合。 语法: 抽象类用abstract修饰,只能单继承 抽象类中的方法必须加 abstract 修饰符,访问权限不能是 private 接口的方法默认是就是 public,可以省略 abstract 关键字 接口只能声明常量,接口中的成员变量没人就是 public staic final ..... 接口之间允许多继承

5.内部类:使用方式和普通类一样

*内部类可以直接访问外部类的成员

*内部类属性如果是static,只能访问外部类的静态成员

*只有静态内部类才能使用static成员

*外部类名.内部类名 对象名 = new 外部类型().new 内部类型();

*外部类要访问内部类的成员,必须要建立内部类的对象

5.匿名内部类

*匿名内部类是内部类的简化写法。它的本质是一个 带具体实现的 父类或者父接口的 匿名的 子类对象

  1. 定义子类

  2. 重写接口中的方法

  3. 创建子类对象

  4. 调用重写后的方法

6.Object类

*输出一个引用数据本质就是调用toString

7.重写equals不是必须重写hashCode

在运行时不受任何影响,但是如果两个对象equals为true理应hashCode也相等,建议重写equals时重写hashCode

8.克隆clone

一般的类不支持克隆,如果想被克隆,必须实现克隆接口Cloneable

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值