java面向对象(继承、关键字)

面向对象的三大特征之一:继承
现实中的继承:子承父业
java中的继承:描述的是俩个类的关系
基本格式:
class Fu(){}
class Zi extends Fu(){}
继承的特点:
优点:
提高代码复用性
提供代码扩展性
缺点:耦合度增强了
成员变量和成员方法:
子类会继承父类的成员变量、成员方法(除private外)
方法重写:子类中的方法跟父类中的方法相同,一般方法体不同
1.方法名和参数列表必须相同
2.修饰符子类方法修饰符不能小于父类的
3.返回值类型子类不能大于父类的
4.子类抛出的异常不能大于父类的
构造方法:创建并初始化对象
调用子类的构造方法时,必然会调用父类的构造方法
默认默认的子类每个构造方法中第一行隐藏了super()用于调用父类的空参构造
单继承的限制:
java类之间只支持单继承,一个类只能有一个父类,可以有多个子类。
java支持多层继承

一、this关键字:代表当前对象的引用
用在什么地方?
构造方法中 :this.成员变量 , this(参数)
实例方法中 :this.成员变量,this.成员方法
构造代码块:this.成员变量 ,this.成员方法
静态方法中:不能使用this关键
super关键字:当前类中用于访问父类的一个特殊关键字,不代表对象
使用位置:
构造方法中:super(参数);
实例方法中:super.成员变量,super.成员方法
不能用在静态方法中的
在方法中访问成员变量或成员方法的原则:就近原则,追根朔源原则

二、成员变量的初始化
类变量(静态变量):(在类加载过程中完成初始化)
默认初始值
直接显式赋值
静态代码块
注意:直接显式赋值和静态代码块根据书写顺序决定,静态代码块只加载一次。
实例变量:(实例初始化在调用构造器时完成)
默认初始值
直接显式赋值
代码块
构造器初始化值
注意:直接显式赋值和代码块根据书写顺序决定,构造代码块每次创建对象都会执行
三、多态(重点)
格式:父类引用指向子类对象(接口引用指向其实现类的对象) Fu fu = new Zi();
前提:继承关系(接口实现关系),有方法重写
多态时成员使用特点:
成员方法(重写的方法):编译看左边、运行看右边
成员变量:编译、运行都看左边
静态方法:编译运行都看左边
私有方法:不能重写

    好处:提高了代码的扩展性
            降低类与类的耦合度

    应用:
            在方法的参数上:
                public void feed(Animal a){}
            
            用在方法返回值类型:
                public Animal getAnimal(){}

            用在数组中:

bi

                Animal[] animals = new Animal[5];

    多态的小弊端:
            不能使用子类的特有方法
            Animal a = New Dog();
            a.lookDoor(); //编译失败
    向上转型和向下转型:
            Dog d = (Dog)a;  //向下转型 
            d.lookDoor();
    instanceof关键字:判断变量类型是否匹配,结果为boolean类型
        if(a instanceof Dog){
            Dog d = (Dog)a;  //向下转型 
            d.lookDoor();
        }

四、native关键字:调用本地方法(c/c++编写的)涉及系统功能调用
final关键字:最终的
修饰变量:常量,值不可改变
修饰方法:不能被重写
修饰类:不能被继承
五、Object类
理解:java中所有的类都直接或者间接的继承自Object
Obiect obj = new Obiect();
obj.toString():默认返回一个字符串:由运行时类型+@+内存地址转换的hash值 ,对我们来说意义不大,所以一般重写它。
getClass():获取运行时类型。Animal a = New Dog(); a.getClass();
finalize():GC调用的,用于进行清理对象的内存空间
hashCode():默认返回内存地址转换成的整数,一般需要重写
equals():通常用于比较俩个对象内容是否相同,默认Object类中默认实现比较内存地址,一般需要重写

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值