正在加载今日诗词....

Java零基础入门面向对象之继承

继承:不同类具有大量相同的属性或者方法(例如猫类和狗类都可以属于动物类),(可重用性);

一种类与类之间的关系;使用已存在的类的定义为基础建立新类;新类的定义可以增加新的据或新的功能,也可以用父类的功能,但不能选择性地继承父类

Java中的继承都是单继承,只能继承父类属性中的非私有成员;父类不可以访问子类特有成员

继承:

特点:1:利于代码复用;

2:缩短开发周期;

语法:1使用 extends实现继承;

特征:单一继承,只能有一个父类 (超类、基类)

     Java支持多层继承(继承体系);

     Java继承了父类非私有的成员变量和成员方法,但是请注意:子类是无法继承父类的构造方法的

子类对象的创建过程:

当实例化子类的对象时,必须先执行父类的构造方法,饭后再执行子类的构造方法;

如果父类还有更上级的父类,就会先调用最高父类的构造方法,再逐个一次地将所有继承关系的父类构造方法全部执行;

如果弗雷德构造方法执行失败,那么子类的对象也将无法实例化;

 

方法重载:

1、同一个类中

2、方法名相同、参数列表(顺序、个数、类型)不同

3、方法返回值、包括访问修饰符任意

4、与方法的参数名无关

方法重写:子类从父类继承的某个实例方法无法满足子类的功能需求时,需要在子类中对该实例方法进行重新实现
1、有继承关系的子类中(子类重写父类的方法)

2、方法名相同、参数列表相同(参数顺序、个数、类型),方法返回值可以允许是子类类型

3、方法修饰符在允许范围(访问范围要大于等于父类的访问范围)内是可以变化的

4、与重写方法的参数名无关

5、子类中可以定义和父类中重名的属性

访问修饰符的分类及作用:

访问修饰符对方法重写的影响:

公有的(中央空调重社会):public;允许在任意位置访问;

私有的(重自己):private;只允许在本类中访问;

受保护的(重家族):protected;允许在当前类、同包子类、跨包子类调用(跨包的非子类是不允许的)

默认(重家庭):允许在当前类、同包子类/非子类调用;跨包子类不允许访问

父类的构造不允许被继承、不允许被重写,但是会影响子类对象的实例化;

子类构造默认调用父类无参构造方法;可以super()可以调用指定的父类可被访问的其它构造方法(有参)

继承的初始化顺序:父类静态成员→子类静态成员→父类对象构造→子类对象构造;(访问修饰符不影响成员加载顺序)

super关键字出现的原因:子类对象在构造的时候是否有权利自己选择访问的父类的哪个构造方法()

super代表的是父类对象的引用;

super关键字的使用:必须放在子类构造代码的第一行

super.属性名;

super.方法名(); 用于在子类中调用父类被隐藏的同名实例变量

super([参数列表])  用于在子类的构造方法中调用父类的构造方法;

 

super  PK  this:都不能在静态代码块里调用

super代表父类对象;

this代表当前对象;

Object类:

Object类是所有类的父类,Java中的每个类都可以使用Object中定义的方法-equals() -toString()

equal测试:1、继承Object中的equal方法时,比较的是两个引用是否指向同一个对象

      2、子类可以通过重写equals方法的形式,改变比较的内容

toString测试
        1、输入对象名时,默认会调用类中的toString
        2、继承Object中的toString方法时,输出对象的字符串表现形式:类别信息+@+地址信息
        3、子类可以通过重写equals方法的形式,改变输出的内容以及表现形式

final关键字;final可以和public位置互换

final class:该类没有子类 public final class\final public class

final方法:该方法不允许被子类重写,但是可以被子类继承使用

final 方法内部局部变量:只要在具体被使用之前进行赋值即可,一旦赋值不允许被修改

  类中成员属性:赋值过程:1定义直接初始化;2构造方法;3构造代码块

可配合static使用,表示静态的不允许被修改的信息

 

posted @ 2019-06-02 09:12  就永远夏天  阅读(167)  评论(0)    收藏  举报