zoukankan      html  css  js  c++  java
  • 第二十八节:Java基础-进阶继承,抽象类,接口

    标题图

    前言

    Java基础 - 进阶继承,抽象类,接口

    进阶继承

    class Stu {
     int age = 1;
    }
    class Stuo extends Stu {
     int agee = 2;
    }
    class Demo{
     Stuo stuo = new Stuo();
    }

    成员变量的特殊情况

    成员函数

    class Stu{
     void show(){
       System.out.println("Stu show");
     }
    }
    class Stue extends Stu{
     void show(){
      System.out.println("Stu show run");
     }
    }
    class Demo{
     public static void mian(String[] args){
      Stue stue = new Stue();
      stue.show();
     }
    }

    重写

    override重写,覆盖,复写
    写法:函数的返回值类型,函数名,参数列表都要一样

    子父类中构造函数的特点

    在子类和父类中都有构造函数,运行时,先执行父类中的构造函数,在执行子类的构造函数,因为子类的所有构造函数中第一行都有一句,隐式的super();,表示为调用父类的无参的构造函数

    子在类中为什么有super()呢,子类会一旦继承父类,会继承父类中的内容,子类在初始化的时候,会先到父类进行父类的初始化操作,这没问题吧,因为这样才可以使用父类中的内容。

    子类中所有的构造函数,都会访问父类中默认的空参函数。

    class Student extends Person{
     Student(){
     // super();
     System.out.println("dashucoding");
     }
     Student(String name){
       this(); // 调用Student()的方法
       System.out.println("dashucoding");
      }
    }

    this关键字的描述,子在类中我们会用到this关键字,this是写在构造函数的第一行,用来调用本类的其他构造函数的,还会那么有super()了吗,没有了。super()也是用来放在第一行的,用来显示初始化的。

    在构造函数中,第一行默认都是super(),对象所有父的类都是Object类,所以父类中的构造函数默认第一行,除非自己写,否则都是隐式的super(),用来访问父类中的构造函数。

    this状语从句:语句super语句必须在第一行

    子类实例化过程的应用

    class Person{
     private String name;
     private int age;
     public Person(String name,int age){
      this.name = name;
      this.age = age;
     }
     public void setName(String name){
      this.name = name;
     }
     public String getName(){
       return name;
     }
     public void setAge(int age){
       this.age = age;
      }
     public int getAge(){
      return age;
     }
    }
    class Student extends Person {
     public Student(String name,int age){
     super(name,age);
     }
    }

    最终关键字

    final关键字用来修饰变量,在另外Java中的String类表示为字符串,字符串是常量,它的值在创建以后不能被修改,而字符串缓冲区中的字符串可变。

    修饰符,修饰变量,方法,类
    final修饰的类为名单最终类,修饰方法为最终方法,不能被重写

    抽象类抽象

    抽象类是一个父类,具有自己的构造函数,但是不能给自己的对象进行初始化,却可以给自己的子类对象进行初始化。

    包含抽象方法的类叫做抽象类,抽象类中抽象方法是不完整的,仅有声明而没有方法体。一个类中包含一个或者多个抽象方法,则这个类被叫做为抽象类。

    接口

    接口解决了多继承的问题,将多继承的这种机制在java中通过接口实现了,接口与接口之间是继承的关系。

    interface A{
     void showa();
    }
    interface B{
     void showb();
    }
    class C implements A,B{
     public void showa(){};
     public void showb(){};
    }

    抽象类是用来描述事物的基本功能,抽象类中可以没有抽象方法,但是具有抽象方法的类定为抽象类,接口中定义只能是抽象方法。

    结语

    • 本文主要讲解 Java基础-进阶继承,抽象类,接口
    • 下面我将继续对Java、 Android中的其他知识 深入讲解 ,有兴趣可以继续关注
    • 小礼物走一走 or 点赞

    送❤

  • 相关阅读:
    Leetcode 121. Best Time to Buy and Sell Stock
    Leetcode 120. Triangle
    Leetcode 26. Remove Duplicates from Sorted Array
    Leetcode 767. Reorganize String
    Leetcode 6. ZigZag Conversion
    KMP HDU 1686 Oulipo
    多重背包 HDU 2844 Coins
    Line belt 三分嵌套
    三分板子 zoj 3203
    二分板子 poj 3122 pie
  • 原文地址:https://www.cnblogs.com/dashucoding/p/11932517.html
Copyright © 2011-2022 走看看