面向对象
Overwrite 子类中重写的方法名和形参列表和父类中相同 子类中重写的方法权限修饰符不小于父类
- 父类是void, 子类也是void
- 父类是基本类型,子类也必须是基本类型
- 父类被重写的返回值是A类,则子类可以是A类或A类的子类
Super关键字 Super可以理解为父类的this 在子类和父类中都写了重名的属性,用super
比如class person 属性id为身份证, class Student extends person 属性id为学号,但是两者都有一个ID,则在student中,this.id = 学号, super.id = 身份证
super调用构造器 只能在首航 this/super二选一 在首行没有声明,则默认父类中空参构造器:super
多态性
List l = new ArrayList<>(); 编译看左,运行看右 多态是运行时行为.
package com.atguigu.test;
import java.util.Random;
class Animal {
protected void eat() {
System.out.println("animal eat food");
}
}
class Cat extends Animal {
protected void eat() {
System.out.println("cat eat fish");
}
}
class Dog extends Animal {
public void eat() {
System.out.println("Dog eat bone");
}
}
class Sheep extends Animal {
public void eat() {
System.out.println("Sheep eat grass");
}
}
public class InterviewTest {
public static Animal getInstance(int key) {
switch (key) {
case 0:
return new Cat ();
case 1:
return new Dog ();
default:
return new Sheep ();
}
}
public static void main(String[] args) {
int key = new Random().nextInt(3);
System.out.println(key);
Animal animal = getInstance(key);
animal.eat();
}
}
|