1.面向对象的特征:
(1)继承:extends关键字实现父子类关系,子类可以用父类中的属性和方法,也可以定义自己的属性和方法,一个类可以有多个子类,但是一个类只能有一个父类
2.构造器:
创建子类对象时,首先会创建父类对象,
编译器会在子类构造器的第一行默认加入super();调用父类的无参构造器,要调用父类中有参的构造器,必须用super(参数1,参数2...);
super(),必须写在子类构造器的第一行。
3.重写:发生在父子类之间,要求:方法名和参数列表一样,方法实现不一样
方法重写和重载的区别:
重载:发生在同一个类中,方法名一样,参数列表不一样(参数类型,参数个数,参数顺序不一样)
重写:发生在父子类之间,要求:方法名和参数列表一样,方法实现不一样
1.1方法重写时,到底调用哪个方法根据对象的类型定,对象是什么类型就调用该类中的方法
1.2父子类中存在相同的属性时,到底调用哪个类中的属性,根据变量的类型来定,变量是什么类型,就调用哪个类的属性
1.3如果想在子类中调用父类的属性和方法用super关键字如:
super.f(),super.name;
如果想在子类中调用父类的构造器用,可以在子类的构造器的第一行写super(参数(可有可无));
如果想在自己类中调用自己的构造器可以写this()如:
(2)封装
封装:就是隐藏实现细节
(1)将属性私有化,提供公有方法访问私有属性
(2)通过这些公有方法访问私有属性
封装的实现:
(1)修改属性的可见性来限制对属性的访问
(2)为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的访问
4.包(package):如果只是用类名来作为唯一标识的话,容易出现类名重复,为了解决类名重复的问题,可以定义包来区分
定义包的时候要在定义类之前,语法:
Package包名
包的命名规范:Java的包名都有小写单词组成
命名:com.公司名.项目名.模块名
com.eduask.shoppingcart.login
(3)多态
网友评论