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修饰类:类不可以被继承 修饰类中的方法可以被继承但继承后不能被重写

 

posted @ 2020-06-12 22:40  多测师_王sir  阅读(172)  评论(0编辑  收藏  举报