父类与子类

2023-02-18 00:00:00 子类

1.继承(父类与子类)
    概述:多个类中存在相同的属性和行为时,将这些内容抽取到单独一个类中, 那么多个类无需再定义这些属性和行为,只需要继承那个类即可
    多个类可以称为子类,单独这个类称为父类或者超类,基类等。
    子类可以直接访问父类中的非私有的属性和行为。
    通过extends关键字让类与类之间产生继承关系。

2. super关键字
    super可以理解为是只想自己父类的一个指针,而这个父类指的是离自己最近的一个父类。
    super普通的直接引用与this类似,super相当于是只想当前对象的父类,这样就可以用super.xxx来引用父类的成员
    举例:
     

   public Male(String nickname, int gander, int age) {
            super.setNickname(nickname);     //接受到下面返回来的参数再传输给父类的属性
        }
        Male male = new Male("盈盈",1,4);      //有参构造方法 返回参数

3.子类实例化其实是先实例化父类
    通过代码举例验证 子类和父类同时输入无参构造方法
    结果输出顺序是 :person01的无参构造
                Male的无参构造
    所以:子类实例化其实是先实例化父类

4.子类可以拥有自己独有的构造方法

5.方法重写
    Override 重写
    当父类方法满足不了子类的需求的时候,子类可以重写父类的方法 这种表现形式我们称之为方法的重写

6.向上转型
    父类对象的引用指向了子类对象的实例化对象 
    举例:

Person01 male = new Male();
        male.eat();     //此时调用的是male中重写后的eat   
                        //并且eat换成male中独有的方法也是不可执行的

7.向下转型
    和数据类型差不多  小转大自动转   大转小强制转
    

        Person01 Person01 = new Male();
        Male male = (Male) Person01;
        Person01.eat();
        male.eat();

    你这个方法能不能调  你得看你真正的类型是谁

8.重载看参数的数据类型   重写new的对象
    方法重载与方法重写的区别    
    在同一个类中,参数列表不同的同名方法我们称之为方法重载
    父类的方法满足不了子类需求,子类重写父类的方法 我们称之为方法重写
    方法重载在同一个类中而方法重写必须存在于父子继承关系

9.this 调用构造方法
    this 在构造方法中调用其他构造方法只能放在第一行 
    注意  使用this调用构造方法的时候不能相互调用 避免造成死循环

10.super 调用父类构造方法

super(nickname,gender,age);

    super调用父类的构造方法的时候 只能放在第一行
    
        

11.抽象方法与抽象类
    使用abstract修饰没有方法提的方法 我们称之为抽象方法    具备抽象方法的类必须是抽象类
    使用abstract修饰的类 我们称之为抽象类    抽象类不一定必须有抽象方法     但是抽象方法必须有抽象类
    子类继承抽象类 第一种写法是重写抽象类中的抽象方法    子类继承抽象类 第二种写法是子类也是个抽象类
  

      举例:public abstract class Person01 {
                public abstract void eat();
            }

12.final 修饰方法
    使用final修饰的类不能被继承也不能被重写
    final 意思上就是 最终的意思   被final修饰的类就是最终的类  所以不能被继承也不能被重写

    原文作者:双面沸小虎
    原文地址: https://blog.csdn.net/JBVHG/article/details/123726542
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

相关文章