java零基础的坎坷之路【4】

    1、final相关:
        final可以修饰类、方法、变量。
        final修饰的类不能被继承。
        final修饰的方法不能被覆写。
        final修饰的变量不能被重新赋值。
    
        ****:final修饰引用类型时,其实是引用类型的地址值不能变,所以修改该地址对应的堆内存的数值是可以的。
    
    2、多态
        前提:
            继承关系、
            方法覆写、
            【向上转型】父类引用指向子类对象(即 Fu f=new Zi())
        多态中成员的访问特点:
            Fu f=new Zi();
            ①、成员变量:编译看左边,运行看左边;
            ②、成员方法:编译看左边,运行看右边【因为方法有覆写,所以运行看右边】;
            ③、静态方法:编译看左边,运行看左边;
            ④、构造方法:创建子类对象的时候,访问父类的构造方法,对父类的数据进行初始化。
        弊端:
            父类引用不能使用子类的特有功能(方法等)。
            解决:
                【向下转型】子类引用再指向父类对象,即:Zi z=(Zi) f;
            
    3、若想要类不能实例化对象,则只要将类的构造方法私有化即可。
    
    4、抽象方法和抽象类的概念
        抽象方法:没有方法体(即没有大括号)的方法。
        
        抽象类的特点:
            ①、abstract关键字修饰
            ②、抽象类中不一定有抽象方法,但有抽象方法的类一定是抽象类。
            ③、抽象类不能实例化,但可以通过子类向上转型实现。
            
        抽象类的子类:
            ①、是一个抽象类,abstract修饰。
            ②、重写父类中的所有抽象方法,成为实现类。
            
        抽象类的成员:
            ①、成员变量既可以是变量也可以是final修饰的常量。
            ②、有构造方法的,用于子类访问父类数据的初始化。
            ③、成员方法可以是抽象的也可以是非抽象的,但抽象方法要通过子类实现才可以调用。
                抽象方法让子类去实现,非抽象方法让子类继承。
        
        抽象类的问题:
            ①、abstract不能与以下关键字共存:
                private、final、static
            ②、一个抽象类是否可以没有抽象方法?有什么意义?
                抽象类可以没有抽象方法,这样的抽象类为了不让实例化对象。
                
    5、接口特点:
        ①、接口的定义:
            interface 接口名{}
        ②、类实现接口:
            class 类名 implements 接口名{}
        ③、接口不能实例化
            只能按照多态方式实例化
        ④、接口的子类:
            可以是抽象类
            可以是具体类:必须重写接口中的所有抽象方法。
            
    5、接口的成员特点:        
        成员变量:
            只能是常量,并且是静态的。
            默认修饰符:public static final,建议开发中这样写。
        成员方法:
            只能是抽象方法。
            默认修饰符:public abstract,建议开发这样写。
        构造方法:
            接口没有构造方法
            接口的子类默认继承的是Object父类,Object是所有类的根类。
        
    6、类、接口的关系:
        类与类:
            继承关系,只能单继承,可以多重继承。
        类与接口:
            实现关系,可以但实现,也可以多实现;可以在实现之前先继承。
        接口与接口:
            继承关系,可以单继承,也可以多继承。
        
    7、抽象类和接口的区别:
        ①、成员区别:
            抽象类:
                成员变量:可以变量,也可以常量                    
                成员方法:可以抽象,也可以非抽象                    
                构造方法:有
            接口:
                成员变量:只能常量                    
                成员方法:只能抽象                    
                构造方法:没有
        ②、关系区别:
            类与类:单继承
            类与接口:实现、单继承、多实现
            接口与接口:继承、单继承、多继承
        ③、设计理念区别:
            抽象类:定义的是共性功能。
            接口:定义的是扩展功能。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明致成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值