面向对象小结2

1、重写 与 重载的区别

重写:发生在父子类中,方法名相同,参数列表相同

重载:发生在同一类中,方法名相同,参数列表不同

2、访问控制修饰符

        1、public:任何类2、protected:本类、派生类、同胞类3默认的、本类、同胞类4、private:本类

3 final 修饰词的应用

        1、修饰变量:变量不能被修改;

        2、修饰方法:方法不能被重写;

        3、修饰类:类不能被继承

4 static 修饰词的应用

        1、修饰变量 所有对象所共享的数据,通过类名点来访问

        2、修饰方法  属于类 方法的操作与对象无关 ,通过类名点来访问

        3、静态块 属于类 在类被加载 期间 自动执行 。因为类只被加载一次

所以静态块只执行一次

                static总结:1、加载时最先加载

                                    2、通过类名点来访问,不用new对象//方便

5 static final 常量:

  • 必须声明同时初始化
  • 类名点来访问,不能被改变
  • 建议:常量名所有字母都大写,多个单词用_分隔
  • 编译器在编译时会将常量直接替换为具体的数,效率高
  • 何时用:数据永远不变,并且经常使用

6 内存管理:由JVM管理

        1、堆:new出来的对象(包括实例变量)

        2、栈:局部变量(包括方法的 (int类似)参数)

        3、方法区:.class字节码文件(包括静态变量,所用方法)

7  abstract 修饰词应用

         1、修饰方法 只有方法定义 没有具体实现(连{}都没有)

        2、修饰类 

                               不能被实例化(new对象)

                                需要被继承,重写所有抽象方法(强制重写)

8 做功能的基本理念

        若为某对象所特有的行为,则将方法设计在特定的类中

        若为所有对象所共有的行为,则将方法设计在超类中

9 接口

  1. 是一种引用类型
  2. 由interface定义
  3. 只能包含常量和抽象方法
  4. 接口需要被实现
  5. 接口不能被实例化
  6. 一个类可以实现多个接口,用    ,   分割先继承在实现
    interface Inter{
    int ABC_Q=10;//默认public static final
    // int a ;//编译错误 常量必须声明同时初始化
    void say();//默认public abstract
    //void test(){}//编译错误 抽象方法不能有方法体
    }

10 多态

  1. 意义:
    同一类型的引用指向不同的对象时,有不同的实现--------所有抽象方法都是多态的
    ----行为的多态:cut()、getImage()、move()…
    同一个对象被造型为不同的类型时,有不同的功能--------所有对象都是多态的(明天才能体会)
    ----对象的多态:我、你、水…
  2. 向上造型/自动类型转换:
    超类型的引用指向派生类的对象
    能点出来什么,看引用的类型
    能造型成为的数据类型有:超类+所实现的接口
  3. 强制类型转换,成功的条件只有如下两种:
    引用所指向的对象,就是该类型
    引用所指向的对象,实现了该接口或继承了该类
  4. 强转时若不符合如上条件,则发生ClassCastException类型转换异常
    建议在强转之前先通过instanceof判断引用的对象是否是该类型
  5. public class MultiTypeDemo {
        public static void main(String[] args) {
            Aoo o = new Boo(); //向上造型
            Boo o1 = (Boo)o; //引用o指向的对象就是Boo
            Inter o2 = (Inter)o; //引用o指向的对象实现了Inter接口
            //Coo o3 = (Coo)o; //运行时发生ClassCastException类型转换异常
            if(o instanceof Coo){ //false
                Coo o4 = (Coo)o;
            }else{
                System.out.println("o不是Coo类型");
            }
        }
    }
    
    interface Inter{
    }
    class Aoo{
    }
    class Boo extends Aoo implements Inter{
    }
    class Coo extends Aoo{
    }
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值