美文网首页
今天学的

今天学的

作者: 竹台师 | 来源:发表于2018-07-08 13:46 被阅读0次

            明白了在java中,什么是类,什么是访问修饰符。访问修饰符比如private  是在本类中,在同一个包中,在子类中不可以访问default在类内部,同一个包中,可以访问,在子类中不可以,protected在类内部、同一个包中、子类可以访问,public在类内部、同一个包中、子类中、任何地方都可以访问。

    对于外部class的权限修饰符只可以用public和default

    public类可以在任意地方被访问。default类只可以被同一个包内部的类访问。

    访问修饰符就是规定了。其他类是不是有访问权限。

          还知道了什么是变量。比如。String  io=“111”。这是声明一个局部变量,存在于栈中。把111赋值给io这个变量在内存中开辟的一块小的储存空间。

            知道了面向对象中的继承,多态。

    继承的关键字是  “extends”  ,即子类不是父类的子集,而是对类的“扩展”。

    继承属性方面

    1.子类会全部继承父类的属性,但是因为访问修饰符的原因,可能不能直接访问,如果不能直接访问的,那么需要通过set/get方法来操作父类的属性。

    2.子类继承父类后,若子类出站与父类中同名的属性时,在子类中需要操作/访问父类的属性时,需要使用关键字super区别

                  super.父类的属性

    补充:局部变量与成员变量(属性)重名时,需要通过this.区分。

    方法

    1.可以原样继承父类的方法

    2.当子类的方法实现需要与父类不相同时,子类需要对方法重写实现

    方法的重写(Overload):当父类中的方法对于子类来说不适用时,子类可以对父类中的方法进行重写/覆写。

    要求:

        重写的方法,必须与被重写的方法,名称要完全一致,参数列表必须完全一致

    对于返回值的类型、修饰符、抛出的异常有哪些限制?

    返回值类型:重写的方法要么与被重写的方法一样,要么比被重写的方法返回值类型小(继承关系,不是int<long这种,即意味着基本数据类型的返回值类型必须一致。

    修饰符:重写的方法要么与被重写的方法一样,要么比被重写的方法的访问修饰符的范围大(public>protected>缺省>private)

      结果:当子类重写了父类的方法时,通过子类对象调用重写的方法,执行的一定是重写过的代码。

    3.当子类重写父类的方法,那么在子类中想要执行父类被重写的代码时要怎么做??

    答:super.父类的方法。

    4.重写的概念不适用于static方法。

    总结:重载(Overload)和重写(Override)有什么区别。

    1.重载是在同一个类中,重写是子类与父类中

    2.重载与重写都要求方法的名称完全一致

    3.重载要求参数列表必须不同,重写要求参数列表必须相同

    4.重载和返回值类型无关,重写有很严格的要求

    构造器

    1.子类继承父类的构造器时,不会继承父类的构造器

    2.但是,子类中一定会去调用父类的构造器,默认情况下是调用父类的无参构造,如果父类中没有无参构造,那么子类必须手动调用有参构造,否则编译报错。

    提示:父类尽量保留无参构造

    3.如何调用父类的构造器

    super();调用父类的空参构造

    suoer(实参列表);调用父类的有参构造,为父类的属性初始化

    注意:必须在构造方法中的首行。在构造方法中this()和super()只能选一个。

    提问:为什么要去调用父类的构造器?

    初衷:为了给从父类继承的属性初始化,子类需要知道父类是如何给属性初始化的

    super关键字

    在java类中使用super来调用父类中的指定操作:

    1.super可用于访问父类中定义的非私有的属性

    2.super可用于调用父类中定义的非私有的成员方法

    3.super可用于在子类构造方法中调用父类的非私有的构造器

    注意:尤其当子类父类出现同名成员时,可以用super进行区分。super的追溯不仅仅限于直接父类。super和this的用法相像,this代表本类对象的引用,super代表父类的内存空间的标识

    今天学的
    java中只支持单支继承,不允许多重继承。
    一个父类可以派生多个子类。

    打个比方,每个人只有一个爸爸。如果一个人有两个爸爸,那就不正常了。子类中可以调用父类中的所有方法(构造器除外),而且子类可以创建新的属性和方法。构造方法中如果有参数的话,需要用super进行区分,this关键字是在本类中。看到super就知道那个属性是父类中的。

            继承中的私有成员

    关于继承的规则:

        父类中的成员,无论是公有(public)还是私有(private),均被子类继承。

    只是因为访问修饰符的原因,子类不能对继承的私有成员进行直接访问,但可以通过继承的公有方法来访问。

    今天学的

    总的来说:

    1.java的继承只能是单继承,一个类只能有一个直接父类(一个类只能有一个亲生父亲)。

    2.但是java支持多层继承,代代相传。(比如传家宝)

    3.不能仅仅为了简化代码而去继承一个类,如果要继承一个类,必须是有is-a的关系

    相关文章

      网友评论

          本文标题:今天学的

          本文链接:https://www.haomeiwen.com/subject/horouftx.html