继承性extends
Object类
如果没有显示的声明一个类的父类的话,则此类继承java.lang.Object类
所有的类都直接或间接的继承Object类
debug调式测试
方法的重写
在子类中可以根据需要对父类继承过来的方法进行改造,也称为方法的重写、覆盖。在程序运行时,子类的方法覆盖父类的方法。
super关键字的使用
super用来区分子类重写的方法与被重写的方法
supper调用构造器
总结:
/*
* super 关键字的使用
* super理解为父类的
* super可以调用:属性、方法、构造器
* 1 属性:我们可以使用super.属性(方法)显示的调用父类的属性与方法通常可以省略不写
* 但是当子类与父类同名的属性时,要想在子类中使用父类的属性。则必需使用super.属性的方式
* 2 方法:当子类重写父类的方法时,我们想在紫烈的方法中调用父类的被重写的方法时,则必需使用super.方法
* 3 构造器:
* [1]可以在子类的构造器中显示的使用"super(形参列表)"的方式,调用父类声明的指定的构造器
* [2]supper放在子类构造器的首行
* [3]在类的构造器中this(形参列表) super(形参列表)二选一,不能同时出现
* [4]在构造器的首行没有显示的声明this(形参列表)super(形参列表)
* 则默认使用super(空参)的父类的空参的构造器
* [5]在类的多个构造器中,至少有一个类的构造器中使用"super(形参列表)"调用父类中的构造器。
*/
子类对象实例化的过程
多态性的使用(运行时行为 动态绑定)
package com.atfqs.java5;
//多态性的举例一:
public class AnimalTest {
public void func(Animal animal){
animal.eat();
animal.shout();
}
public static void main(String[] args) {
AnimalTest a = new AnimalTest();
a.func(new Animal());
a.func(new Dog());// Animal animal = new Dog();
a.func(new Cat());// Animal animal = new Cat();
}
}
class Animal{
public void eat(){
System.out.println("动物: 进食");
}
public void shout(){
System.out.println("动物:叫");
}
}
class Dog extends Animal{
public void eat(){
System.out.println("狗吃饭");
}
public void shout(){
System.out.println("汪汪汪");
}
}
class Cat extends Animal{
public void eat(){
System.out.println("猫进食");
}
public void shout(){
System.out.println("喵喵喵");
}
}