封装
隐藏类的内部细节,提供外部访问的接口,叫做封装,封装使用get,set方法
this:表示当前对象
类中拥有构造方法,构造 方法用来创建对象
构造方法是:方法名称与类名相同,无返回值的方法
默认一个类中,有一个无参构造方法。
当手动提供了一个有参构造方法,系统将不在提供无参构造方法。
//无参构造方法
public User(){
}
//有参构造方法
public User(String name,String sex,int age){
this.name = name;
this.sex = sex;
this.age = age;
}
//重载构造方法
public User(String name,String sex){
this.name = name;
this.sex = sex;
}
User user = new User(name,sex);//这个就是构造方法调用
方法的重载
在一个类中,方法名称相同,参数列表不同,与返回值无关的方法,叫做方法的重载。
继承:
类之间的关系
is-a:继承关系
Has-a:组合体现(如方向盘对象,轮子对象…组合成了汽车这个对象)
(2)继承的意义:代码重用,体现不同抽象层次
(3)继承的特点:子类继承了父类的成员(即属性和方法),虽然父类中私有的属性和方法也被继承了,但是访问不到
一个类可以构建多个子类
(4)在java当中,用extends关键字来表示一个类继承了一个类。
.super关键字
(1)父类的属性和方法
(2)父类的构造方法:
子类构造方法中,super关键字调用父类的构造方法,必须放在构造方法的第一行。所以同时使用
this调用本类的构造方法 和 super调用父类的构造方法是错误的。
子类的构造方法中没有使用this调用本类的构造方法也没有使用super调用父类的构造方法,默认自动的调用父类的无参构造方法。
(2)方法重写(Override,与方法重载没有关系)
方法重写是指子类可以根据需要对从父类继承来的方法进行改写
(3)方法重写的注意点:
重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值;重写方法不能使用比被重写方法更严格的访问权限,父类中的私有方法不能被重写。
(4)final关键字的特点
final可以修饰变量、方法、类;final修饰的变量是一个常量,一旦赋了值就不能在修改了。常量一般都和static关键字配合使用。final修饰的类代表此类不能被继承,
final修饰的方法代表此方法不能被重写。被final修饰的对象,是引用不可变,对象的内容是可变的。
多态:(继承关系)
同一个变量,引用不同的对象,执行不同的方法。
向上转型:
子类对象赋值给父类类型的变量。
将子类对象赋值给父类类型的变量。父类变量调用的方法,如果该方法是子类重写过的父类方法,调用的就是子类重写父类的方法。如果该方法子类没有重写父类的方法,调用的是父类的方法。
抽象方法:
(1)不含有方法体的方法是抽象方法。
(2)抽象方法使用abstract关键字进行修饰。
(3)含有抽象方法的类是抽象类。抽象类使用abstract关键字进行修饰。
(4)抽象类中不一定含有抽象方法。