java的三大特征:封装,继承,多态
封装:java有四个权限啊
1.什么都不写 在同一个包下可调用
2.public 在一个java项目下可调用
3.private 在一个类下可调用
4.protected 有继承关系可调用(可跨包)
一个技巧:
如何使该类不可在其他地方创建对象?
将构造方法私有化(单利模式)
如何区在方法内区分局部变量(方法)和全局变量(方法)?
用this关键字可以做到区分的效果;
继承:
关键字:extends
java只支持单继承,不支持多继承
在继承时,子类不能调用父类的private变量
方法重写:在子类中,方法名与父类相同方法的内部实现不同
继承中的构造方法:
在创建对象时 子类先调用父类的构造方法,在调用自己的构造方法
如果父类的构造方法是有参数的,那么子类的构造方法也必须是有参数的
子类调用自己的变量用关键字this,在调用父类的方法时用关键字super
抽象:
一个类里面有一个抽象方法,那么这个类也必须是抽象类,而抽象类里面不一定都是抽象方法,也可以有普通方法
抽象类无法创建对象
抽象类可以有构造方法
对象之间的转化,子类可以向父类自由转换
在创建对象是,父类的引用可以指向子类对象
父类名 对象名=子类名();
构造方法不可重写,只能重载
多态:
接口:
关键字interface(定义)implements(引用)
接口可以弥补java只支持单继承不可实现的部分,
接口里面的方法都是抽象方法,都是常量
public static finall 变量
public abstract 方法
关于static (静态):
static 具有计数功能(变量),可以直接用类名调用(方法);
静态方法没有多态
关于finall (不可改变):
被finall修饰的变量就变成了常量,并且不可修改
被finall修饰的方法不可改变不能被重写
被finall修饰的类不能被继承
String整个类都是被finall修饰的,所以String不可被继承