Java继承

子类拥有父类非 private 的属性、方法。

子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// extends 只能继承一个类
public class Animal {}
public class Penguin extends Animal{}
//implements可以同时继承多个接口
public interface A {}
public interface B {}
public class C implements A,B {}
// this 调用自己的方法
this.eat();
// super 调用父类方法
super.eat();
//使用 final 关键字声明类,就是把类定义定义为最终类,不能被继承,或者用于修饰方法,该方法不能被子类重写
final class 类名 {}
(public/private/default/protected) final 返回值类型 方法名(){}

遗留问题:构造器的继承?

Java重写Override

即外壳不变,核心重写

1
2
3
4
5
6
7
public static void main(String args[]){
Animal a = new Animal();
Animal b = new Dog();//用dog的方法创建一个animal,但b的声明是animal类,所以b没有bark方法
a.move();//执行 Animal 类的方法
b.move();//执行 Dog 类的方法,对于重写过的方法,是有的
b.bark();//b没有bark方法,编译错误
}

Java重载overloading

在一个类里面,方法名字相同,而参数不同(顺序、参数、个数不同)。内容不关注,返回类型可以相同也可以不同。

1
2
public void test(int a){}   
public String test(int a,String s){return ...;}

Java抽象类

除了不能实例化对象,其他和普通类一样,它等着被继承

1
public abstract class Employee{}

Java接口Interface