一、封装、继承、多态
1、继承 extends
(1)减少代码冗余,提高代码封装性
(2)便于功能扩展
(3)为多态使用提供前提
(4)一旦子类A继承父类B以后,类A中就获取了父类B中声明的所有属性和方法
(5)父类中声明为private的属性和方法,子类继承父类后,仍然认为获取了父类中私有的结构,因为封装性的影响,使得子类不能直接调用父类的结构而已
(6)子类继承父类以后,可以声明自己的属性和方法,实现功能的拓展
(7)一个类可以被多个子类继承,一个类只能有一个父类
(8)如果没有显示声明一个类的父类的话,则此类继承于java.lang.Object类
(9)所有java类,都直接或间接继承java.lang.Object类
2、方法重写
(1)根据需求改造父类方法
(2)重写以后,创建的子类对象,调用父类的同名同参方法时,实际执行的是子类重写父类的方法
(3)子类不能重写父类中声明为private权限的方法
(4)父类被重写的方法的返回值为void,则子类重写的方法也只能是void
(5)父类被重写的方法的类型是A类型,则子类重写的方法的类型可以是A类或A类的子类
(6)如果是基本数据类型(double),则重写的方法也必须是相同的基本数据类型
(7)子类重写的方法抛出的异常不大于父类被重写方法抛出的异常类型
3、super关键字
(1)可以用来修饰方法、属性、构造器
(2)当子类和父类中定义了同名的属性或子类重写了父类的方法,想在子类中调用时,则必须显示使用super.属性、super.方法进行调用
(3)构造器默认调用super(),针对super和this只能调用一个
4、多态
(1)父类的引用指向子类的对象
(2)提高了代码的维护性(继承保证)
(3)提高了代码的维护性(继承保证)
(4)当调用子类同名同参方法时,实际执行的是子类重写父类的方法
(5)只能调用父类中声明的方法
(6)使用前提:
有类的继承关系
方法的重写
(7)减少重载的方法
(8)只适用于方法,不适用于属性
5、static关键字
(1)修饰属性、方法、代码块、内部类
(2)静态变量,多个对象共享同一个静态变量,修改一个对象的静态变量时会导致其他对象调用此变量时是修改过后的变量
6、单例设计模式
(1)只存在一个对象实例
私有化构造器
内部创建类的静态对象
提供公共的静态方法返回类的对象(static)
7、abstract
(1)抽象的,用来修饰类和方法,不能修饰属性、构造器、私有方法、静态方法、final的方法、final的类
(2)一旦类抽象了,就不可实例化
(3)抽象类一定有构造器,便于子类实例化时调用(让子类对象实例化,完成相关操作)
(4)抽象方法只有方法的声明,没有方法体
(5)包含抽象方法的类一定是抽象类,反之,抽象类中可以没有抽象方法的
(6)若子类重写了父类中的所有的抽象方法后,次子类方可实例化
(7)若子类没有重写父类中的所有的抽象方法,则此子类也是一个抽象类,需要使用abstract修饰
8、interface
(1)多重继承(多继承),与类并列
(2)除了定义全局变量和抽象方法之外,还可以定义静态方法、默认方法
(3)接口中不能定义构造器,意味着接口不可实例化
(4)如果实现了覆盖了接口中的所有抽象方法,则此实现类就可以实例化
(5)如果实现类没有覆盖接口中所有的抽象方法,则此实现类仍为一个抽象类
(6)Java类可以实现多个接口,弥补了Java单继承的局限性
(7)体现了多态性,实际上可以看做是一种规范
(8)主要用途是被实现类实现(面相接口编程)
9、工厂模式
(1)实现了创建者与调用者的分离,即将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的
10、内部类
(1)将类A声明在类B中,则A是内部类,B是外部类
(2)局部内部类
(3)成员内部类
1、调用外部类的结构
2、可以被static修饰
3、可以被4种不同的权限修饰
4、类内可以定义属性、方法、构造器等
5、可以被final修饰,表示此类不能被继承
6、可以被abstract修饰