java面向对象基础
一,堆,栈,方法区的理解
* 了解堆栈方法区基础
* java是先编译,后执行,编译成字节码形式
* 类(.class)加载到方法区 ---如本例中的MyOOD.class Point.class
* 局部变量p1,p2,在栈中分配
* 对象Point在堆中创建,对象按照属性分配空间
* p1,p2指向堆中对应的对象的地址
* static修饰词修饰的类,方法,变量也是放在方法区
二. public private 默认 protected 的作用域
* Public > protected(继承类时可以获取到)>默认>private
二.重载与重写
*重载:
*同一个类中,方法名相同
*参数的个数,类型不同,
*返类型也可以不同
*重写:
*子类继承父类的方法
*方法名和参数类型参数数量等都和父类的方法相同
*方法的逻辑代码,实现方法不同
*子类的重写方法被调用时,运行的是重写后的方法
*如果要调用父类的方法,可以用super关键字调用
*同一个类中,方法名相同
*参数的个数,类型不同,
*返类型也可以不同
*重写:
*子类继承父类的方法
*方法名和参数类型参数数量等都和父类的方法相同
*方法的逻辑代码,实现方法不同
*子类的重写方法被调用时,运行的是重写后的方法
*如果要调用父类的方法,可以用super关键字调用
四. 抽象类与接口
*抽象类(Abstract)----抽象类,用于表示抽象的概念,主要是用于继承 extends
*特性:
*类的修饰词为abstract
*包含抽象方法的类一定是抽象类 ,但是抽象类可以没有抽象方法
*抽象类可以定义变量,但是不能直接实例化,只能被继承
*具体理在继承抽象类是必须实现全部的抽象方法
*抽象类可以继承抽象类
*一个类只能继承一个父类
*
*接口(interface)----可以理解一种特殊的抽象类,主要是用于给实例对象进行接口的实现
*特性:
*修饰词为interface
*接口中只能声明抽象方法和常量
*接口不能被实例化,只能被实现
*具体类实现接口,必须实现全部的抽象方法
*一个类可以实现多个接口
*接口可以继承接口
*特性:
*类的修饰词为abstract
*包含抽象方法的类一定是抽象类 ,但是抽象类可以没有抽象方法
*抽象类可以定义变量,但是不能直接实例化,只能被继承
*具体理在继承抽象类是必须实现全部的抽象方法
*抽象类可以继承抽象类
*一个类只能继承一个父类
*
*接口(interface)----可以理解一种特殊的抽象类,主要是用于给实例对象进行接口的实现
*特性:
*修饰词为interface
*接口中只能声明抽象方法和常量
*接口不能被实例化,只能被实现
*具体类实现接口,必须实现全部的抽象方法
*一个类可以实现多个接口
*接口可以继承接口
五.static关键字
*静态变量在类加载期间初始化,存在方法区中
*全体对象共享的一份变量
*经常使用类名访问静态变量(类名.方法名 即调用静态方法)
六.final关键字
*final关键字
*final类,不可继承
*final方法,不可重写
*final变量,值不可变,常量
七.this关键字
*this关键字在java中指的的是当前这个对象