java面向对象编程(1):(1)类与对象(2)构造方法
涉及类的封装、多态、继承、实现、成员变量成员属性、成员函数成员方法、构造方法默认方法;
代码区、静态区、栈区等等
java的垃圾回收机制
抽象类可调用自己定义的静态函数:Float.parseFloat(str)
java面向对象编程(2):(1)this (2)类变量/类方法 (3)四大特征:封装、继承和多态 抽象
多态的两种方式:继承与实现接口
多态:一个引用(类型)在不同情况下的多种状态,通过指向父类的指针来调用在不同子类中的实现方法
java面向对象编程(3):(1)抽象类 (2)接口 (3)final
抽象类
当父类的一些方法不能确定时,用abstract来修饰该方法-抽象方法;用abstract来修饰类-抽象类
抽象方法必须用于抽象类中
当一个子类继承的父类是抽象类的话,需要在子类中把抽象类中的所有抽象方法全部实现
抽象类-深入讨论
1.用abstract修饰一个类时,该类就是抽象类
2.用abstract修饰一个方法时,该类就是抽象方法
注意事项:
1.抽象类不能被实例化;(其方法都不确定)
2.抽象类不一定要包含抽象的方法;(可以包含非抽象的可以实现了的方法,这是与接口的区别)
3.一旦一个类包含了abstract方法,必须将其声明为abstract类;
4.抽象方法不能有主体;(即abstract方法不能在抽象类中实现)
接口:给出一些没有内容的方法,封装到一起,到某个类使用的时候,就把该方法实现
一个重要的原则:当一个类实现一个接口时,就要求该类把这个接口的所有方法全部实现
接口注意事项:
1.接口不能被实例化
2.接口中的所有方法都不能有主体,即都不能实现(可以说接口是更加抽象的抽象类,抽象类可以有实现的方法)
3.一个类可以实现多个接口
4.接口中可以有变量【但是变量不能用private与protected修饰】
注:
a 接口中的变量,本质是都是 static 变量,而且是final,不过加不加static修饰
b java中,经常将常用的变量定义在接口中,作为全局变量使用。访问形式:接口名.变量名
5.一个接口不能继承其他的类,但是可以继承其他的接口
小结:接口是更加抽象的抽象的类,抽象类里的方法可以有方法体(非abstract方法),接口里的所有方法都没有方法体,接口体现了多态和高内聚的设计思想。
完善类的定义
前期绑定:在编译的时候就能确定的类型
后期绑定:只能在运行时才能确定的类型
final
1.当不希望父类的某些方法被子类覆盖时,可以用final关键词修饰
2.当不希望类的某个变量的值被修改时,可以用final修饰(final变量必须被初始化)
3.当不希望类被继承时,可以用final修饰