• Java面向对象—继承


    概述:

    1、多个类相同的属性和功能抽取成另一个类, 让具有特有功能的类继承这个类. 2、通过 extends 关键字可以实现类与类的继承

    格式:

    class 子类名 extends 父类名 {}

    特点 :

    1、一个类只能有一个父类,不能有多个父类 2、Java 支持多层继承

    package cn.czbk.no5;
    
    public class TestExtends {
    public static void main(String[] args) {
    C c=new C();
    c.ashow();
    c.bshow();
    A a=new A();
    B b=new B();
    a.apshow();
    System.out.println(b.a);
    }
    }
    class A{
    private int a;
    public void ashow(){
    System.out.println("A class");
    }
    private void aprshow(){
    System.out.println("A private show不可被外界访问");
    }
    protected void apshow(){
    System.out.println("A protected show");
    }
    }
    class B extends A{
    protected String a="protected String";
    public void bshow(){
    System.out.println("B class");
    }
    }
    class C extends B{}

    继承的注意事项

    1、子类只能继承父类所有非私有的成员(成员方法和成员变量)

    2、子类不能继承父类的构造方法

    3、不要为了部分功能而去继承

    package cn.czbk.no5;
    
    public class TestExtends1 {
    public static void main(String[] args) {
    CC cc=new CC();
    }
    }
    class AA{
    public AA(String a){
    System.out.println(a);
    }
    }
    class BB extends AA{
    public BB(){
    super("abc");//继承AA类的话如果AA有自己定义构造方法的话要在这个地方显示声明
    System.out.println("BB cont");
    }
    }
    class CC extends BB{
    public CC(){
    //会默认调用父类的空参构造方法
    System.out.println("CC cont");
    }
    }

    继承中成员变量的关系

    this:当前对象的引用

    1、this.成员变量

    2、this.成员方法(...)

    3、this(...)调用自己构造方法

    super:当前对象父类对象的引用

    1、super.成员变量

    2、super.成员方法(...)

    3、super(...)调用父类的构造方法

    继承中子父类构造方法的关系

    1.子类构造默认会访问父类的空参构造, 什么都不写,子类构造默认第一句是 super();

    2.如果父类没有空参构造,子类可以显示通过 super(参数列表)语句调用父类带参构造

    3.子类构造可以通过 this(..)调用其他构造,让其他构造去访问父类构造.

    继承中成员方法关系

    同名:子类对象调用的是子类的方法.

    方法重写:子类中出现了和父类中一模一样的方法声明,也被称为方法覆盖,方法复写。

    重写和重载的区别:

    重载的特点:在同一类中。方法名相同,参数列表不同。

    重写的特点:要有继承关系。在子父类中方法的声明相同(方法名和参数列表都相同)。覆盖 时,子类方法访问权限不能小于父类方法的访问权限。静态只能覆盖静态。

  • 相关阅读:
    HTML
    数据库
    EF增删查改(三)------终极版
    三层的之间的引用
    sql:PostgreSQL
    csharp:SQLite and Access using C# code read data
    sql:Mysql create view,function,procedure
    sql: MySQL and Microsoft SQL Server Stored Procedures IN, OUT using csharp code
    Working C# code for MySql5.5 Stored Procedures IN parameters
    csharp:search and Compare string
  • 原文地址:https://www.cnblogs.com/lingyejun/p/7102555.html
Copyright © 2020-2023  润新知