继承是面向对象的三大特征,继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
类的继承格式,在java中需要extends关键字可以申明一个类是从另外的一个类继承而来的。
class 父类 {
}
class 子类 extends 父类 {
}
继承类型
java不支持多继承,但支持多重继承。
单继承
public class A{
......
}
public classs B extends A{
......
}
由class B拿到class A
多重继承
public class A{
...
}
public class B extends A{
....
}
public class C extends B{
.....
}
由孙类C拿到儿类继承父类的数据
不同类继承同一个类
public class A {....}
public class B extends A{.....}
public class C extends A{......}
(1)java中不支持多继承
继承的特性
子类拥有父类非 private 的属性、方法。
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
子类可以用自己的方式实现父类的方法。
继承关键字的关键字是exdents关键字来实现
extends关键字
(2)在java中,类的继承只能是单一的继承,一个子类只能拥有一个父类,所以extends只能继承一个类。
super和this关键字
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();
}
}
Java 接口
接口,英文:Interface,在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口与类相似点:
一个接口可以有多个方法
接口文件保存在 .java 结尾的文件中,文件名使用接口名。
接口的字节码文件保存在 .class 结尾的文件中。
接口相应的字节码文件必须在与包名称相匹配的目录结构中。
接口与类的区别:
接口不能用于实例化对象。
接口没有构造方法。
接口中所有的方法必须是抽象方法,Java 8 之后 接口中可以使用 default 关键字修饰的非抽象方法。
接口不能包含成员变量,除了 static 和 final 变量。
接口不是被类继承了,而是要被类实现。
接口支持多继承。
接口的声明
[可见度] interface 接口名称 [extends 其他的接口名] {
// 声明变量
// 抽象方法
}
Interface关键字用来声明一个接口
public interface NameOfInterface
{
//任何类型 final, static 字段
//抽象方法
}
接口有以下特性:
接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字。
接口中的方法都是公有的。
实例
interface Animal {
public void eat();
public void travel();
}
接口语法:
...implements 接口名称[, 其他接口名称, 其他接口名称..., ...] ...