面向对象
封装 继承 多态
接口
继承 extends
子类(派生类)和父类(超类,基类)
this 表示对本类对象的引用
调用本类的属性和方法
this(); 调用本类的构造方法,必须写在构造方法中的第一行
super 表示对父类对象的引用
调用父类的属性和方法
super(); 调用父类的构造方法,必须写在构造方法中的第一行
super(); 在构造方法中 是隐式存在。
子类不能继承父类的什么?
1,私有成员 private 修饰的属性和方法
2,构造方法
3,子类和父类不在同包下,使用默认访问权限的成员
继承的特点:
1,子类(派生类)和父类(超类,基类)
2,java中的类只能单继承(只能有一个父类)。但是可以多重继承。
3,一个类如果没有extends关键字,则继承Object
4,子类创建时,先创建Object, 再创建父类,最后创建子类【
访问修饰符:
private < 默认的(不写) < protected < public
public 修饰的,所有地方所有类都可以访问
private 修饰的,只能在本中访问
protected 修饰的,同一包中的类都可以访问
默认的 修饰的。在同一包中类可以访问,不同包中的子类不可以访问。
符合is-a关系的设计使用继承
方法重载:overload 在同一个类中不同的参数列表(个数,顺序,类型)
方法重写: override
当父类方法不能满足子类的需求时,需要方法的重写。
特点: 子类对父类方法的重写
方法名,参数列表 必须和父类的相同
返回值类型和父类相同或是其子类
访问权限不能严于父类
抽象: abstract
Pet pet = new Pet(“贝贝”,18);
pet是宠物,不知道指的是什么,所有pet对象很抽象。
pet.voice();叫声方法,这个方法实现没有任何意义。所以这个方法也很抽象。
抽象的反义词,具体。
abstract 修饰 类,叫抽象类。
这个类不能实例化。这个类只能被继承。
抽象类中可以有抽象方法,实例方法。
abstract 修饰方法 ,叫抽象方法
这个方法没有方法体,那么这个方法只能被子类重写
有抽象方法的类必然是抽象类
抽象方法和抽象类是一种规范作用。
final 最终的
1,修饰变量 常量 值不可变
public final int a =1;
2,修饰方法
方法不能被重写。
3,修饰类