• Java知识24 继承(重点巩固)【多测师】


    一、继承就是子类继承父类的特征和行为 使得子类对象(实例)具有父类的实例域和方法 子类从父类继承方法,使得子类具有父类相同的行为
    动物:有
    食草动物 和食肉动物 但是俩者的属性和行为上有差别、所以子类会具有父类的一般特性也会具有自身的特性
    类继承格式:  Java中可以申明一个类是从另外一个类继承而来
    class 父类{
    }
    class 子类 extends 父类{
    }
    
    二、公共父类如下:
    public class Animal {
      private String name;
      private int id;
    
      public Animal(String myName, int myid) {
       name = myName;
       id = myid;
      }
    
      public void eat() {
       System.out.println(name + "正在吃");
      }
    
      public void sleep() {
       System.out.println(name + "正在睡");
      }
    
      public void introduction() {
       System.out.println("大家好!我是" + id + "号" + name + ".");
      }
    }
    
    三、Animal作为一个父类,企鹅类和老鼠类继承这个类之后 就具有父类当中的属性和方法
    public class Penguin extends Animal {
      public Penguin(String myName, int myid) {
       super(myName, myid);
      }
    }
    
    四、继承的特性
    1.子类有父类非private的属性和方法
    2.子类拥有自己的属性和方法可以对父类扩展,子类可以用自己的方式实父类的方法
    3.Java可以单继承也可以多重继承 
    单继承就是一个子类继承一个父类
    多重继承就是a类继承b类 b类继承c类
    
    五、继承关键字
    俩个:extends和implements 俩个关键字来实现继承 所有的类继续于Java.lang.Object 如果没有这俩个关键字默认继承Object(这个类在Java.lang中不需要import)
    
    六、extends关键字
    Java中,类的继承是单一继承,一个子类只能拥有一个父类 所以extends只能继承一个类
    
    七、implements关键字
    使得implements关键字可以使得Java具有多继承的特性,使用的情况:类继承接口的情况 可以同时继承多个接口(接口和接口之间采用逗号分隔)
    public interface A {
      public void eat();
    
      public void sleep();
    }
    
    public interface B{
      public void show();
    }
    
    public class C implements A, B {
    }
    
    
    八、super和this关键字
    super关键字:可以通过super关键字来实现对父类成员的访问 用来引用当前对象的父类
    this:指向自己的引用
    代码如下:创建俩个Java文件 先调用了一次Animal类的eat方法 然后再调用了Dog子类的自己的方法和父类的方法
    class Animal {
      void eat() {
       System.out.println("animal : eat");
      }
    }
    
    class Dog extends Animal {
      void eat() {
       System.out.println("dog : eat");
      }
    
      void eatTest() {
       this.eat(); //  this 调用自己的方法
       super.eat(); // super 调用父类方法
      }
    }
    
    public class Test{
      public static void main(String[] args) {
       Animal a = new Animal();
       a.eat();
       Dog d = new Dog();
       d.eatTest();
      }
    }
    运行结果:
    animal : eat
    dog : eat
    animal : eat
    
    九、final关键字  声明类可以把类定义为不能继承的 即最终类,或者用于修饰方法 该方法不能被子类重写
    声明类:
    final class 类名 {//类体}
    声明方法:
    修饰符(public/private/default/protected) final 返回值类型 方法名(){//方法体}
    注意:实例变量也可以被定义为 final,被定义为 final 的变量不能被修改。被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final
    
    十、构造器
    子类不能继承父类的构造器(构造方法和函数) 但父类的构造器带有参数,必须在子类构造器通过super关键字调用父类的构造器
    如果父类有无参构造器,则在子类构造器用super调用父类构造器不是必须的,没有super关键字 系统会自动调用父类的无参构造器
    
    重点:
    1.Java要在子类调用父类方法 需要使用关键字super
    2.为什么用继承? 从已有的类派生新的类,称为继承,易于维护和理解
    3.父类称为:超类和基类  子类为派生类,次类,扩展类
    4.子类一般比父类包含更多的数据域和方法
    5.父类中的private数据域在子类不可见,在子类不能直接使用
    6.Java只允许单一继承(即一个子类只能有一个直接父类) C++可以多重继承
    7.super关键字:
    可以调用父类的构造方法,调用父类的方法,访问父类的数据域
    静态方法中不能使用super关键字
    8.this关键字 表示当前对象,调用当前类的构造方法
    9.final修饰类:类不可以被继承 修饰类中的方法可以被继承但继承后不能被重写
  • 相关阅读:
    数据结构与算法——优先队列类的C++实现(二叉堆)
    Effective C++--经验条款
    [精]读览天下免费阅读平台
    团队现状与用人标准——揭秘万达电商(6)
    稀疏向量计算优化小结
    漫谈雪崩
    Git起步
    Solr 配置文件之schema.xml
    Shader toy (顺手写两个Gyro)(纯代码写3D)
    Tomcat服务器安装
  • 原文地址:https://www.cnblogs.com/xiaoshubass/p/13110943.html
Copyright © 2020-2023  润新知