三大特性为:
封装 继承 多态
先谈谈理解:
封装:该露的露,该藏的藏
隐藏对象的属性和实现细节,仅对外暴露公共的访问方式
为了保证安全性,实现高内聚,低耦合(高内聚就是类的內部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用)
实现:public private等关键字,私有属性和get set方法
继承:类的关联,代码复用
子类能继承父类的public,protected方法和属性,还可以重写方法
单继承 extends
要实现继承,可以通过 继承和组合 来实现。继承类似“人-学生”的关系,组合类似“人-手/脚”的关系(把其他类作为参数)
修饰符:
构造器:
而java编译器会默认在子类构造器的第一行用super()先调用父类的无参构造器。如果父类没有无参构造器,则子类在实例化的时候会报错。这个时候就需要显示的在子类构造器第一行(必须在第一行)指定构造器super(args)来指定调用父类哪个构造器。
构造器顺序:?
super好像就是假如重写了父类的方法或者属性,用这个关键字可以调用到父类的这些东西。
多态:父类数据类型的引用指向子类对象
最典型的例子 :这样假如有个地方的参数需要的类型是List,那我们可以传递给它Arraylist或者LinkedList
List<String> arrayList=new ArrayList<String>();
实现多态,有二种方式,覆盖,重载。
(1)Java的方法重载(类内部之间的多态):就是在类中可以创建多个方法,它们具有相同的名字,但可具有不同的参数列表、返回值类型。
(2)Java的方法重写(父类与子类之间的多态):子类可继承父类中的方法,但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。重写的参数列表和返回类型均不可修改。
多态的好处:提高了程序的扩展性具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作
多态的弊端:不能使用子类的特有功能