1.回顾
多态是什么
对象在不同时刻表现出来的不同状态
父类子对象
前提: 继承
重写
父类引用指向子类对象
变量、方法
变量:编译运行都在左边
方法:编译左,运行右
抽象类
抽象方法:有方法声明,没方法体
有抽象方法的类叫抽象类
基本特点:
1.不能被实例化
2.抽象类不一定有抽象方法,有抽象方法一定是抽象类
3.子类继承抽象类,要么子类抽象,要么重写所有抽象方法
成员特点:
1.成员:可以变量,可以常量
2.构造:为了子类访问父类成员前进行初始化
3.方法:抽象,费抽象
接口
所有方法都是抽象的,就叫接口
基本特点
1.不能被实例化
2.方法全抽象
成员特点:(无构造)
1.变量:都是常量 public static final
2.方法:只能抽象 public abstract
共存 abstract --- private final static
抽象与接口的区别
1成员特点
2关系特点
3设计理念
抽象类定义的是系统的共性内容,is a
接口定义的是系统的扩展功能,like a
---------------------------------------------------
包:其实就是文件夹,用于区分相同的类名
格式: package 包名(全部小写)
顺序 package import class
带包的类怎么用 :
方式1;
1.javac生成class文件
2.手动建包
3.把class文件放进包中
4.java命令
:要带路径
方式2:
编译时自动建立包 import
1.javac -d . *.java当前目录建包
2.java 带包名的类名
权限修饰符: 成员变量:private
成员方法: public
构造方法: public (工具类和单例模式除外)
所有类都public ,一个java文件只写一个类
如果发现API的一个类没有提供构造方法
1.所有方法静态,类名调用
2.对外提供公共访问方法,返回本类对象
内部类: 一个类在另一类中
位置: 成员
局部
特点:
内部类可以直接访问外部成员
外部类访问内部类需要建对象
内部类的使用:
格式:外部类名.内部类目 变量名 = 外部类对象.内部类对象
内部类修饰:
成员:private安全 static类名调用
局部: 访问外部类的局部变量,该变量必须要final,要求变量跟class生命周期一样
内部类class文件
$直接连内部类是成员内部类
$1后边跟内部类是局部内部类
匿名内部类
定义:没有名字的局部内部类
前提:必须有一个抽象类或接口
格式:
new 类名、接口名()
{
重写方法
定义新方法
}; .show();
是一个继承了类或实现了接口的匿名类对象
什么时候使用:
1接口或抽象类中的方法在3个以下的时候,考虑
2一个方法接收的参数是抽象类或接口的时候
//多态
接口名 变量名 = new 类名、接口名()
{
重写方法
定义新方法
};
回顾:
重写注意:1子类不能重写父类的私有方法
2子类不能缩小父类的访问权限
3静态只能访问静态
|
|