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.匿名内部类
*匿名内部类是内部类的简化写法。它的本质是一个 带具体实现的 父类或者父接口的 匿名的 子类对象
-
定义子类
-
重写接口中的方法
-
创建子类对象
-
调用重写后的方法
6.Object类
*输出一个引用数据本质就是调用toString
7.重写equals不是必须重写hashCode
在运行时不受任何影响,但是如果两个对象equals为true理应hashCode也相等,建议重写equals时重写hashCode
8.克隆clone
一般的类不支持克隆,如果想被克隆,必须实现克隆接口Cloneable