[Java语法篇2] 继承与多态
一、Java类的继承
1.继承定义与结构
1)继承的定义:
继承是一种基于已有类(被称为父类或派生类)创建新类(被称为子类或派生类) 的一种方式
子类将继承父类的成员变量(包括值)与方法
2)继承的结构
访问权限 class 子类名 extends 父类名{ }
//父类结构
public class Father{
String name;
String mobile;
int age;
//...
}
//子类继承父类
public class Son extends Father{
String address;
//...
}
2.继承的特点
1)Object类是所有类的父类
即使创建类时不加extends Object,创建的类仍是Object的子类
2)Java只有单继承,没有多继承
每个类只能是一个类的子类,不存在一个类是多个类的子类
//Java中不允许存在如下代码,只能单继承
public class Son extends Father1,Father2{
String address;
//...
}
3)一个类如果有final修饰,则该类没有子类,即不能被继承
常见的由final修饰的类:String、System、基本数据类型的包装类(Integer、Byte、Short、Long、Double、Float、Double、Boolean、Character)
//此时父类结构不可被继承
final class Father{
String name;
String mobile;
int age;
//...
}
4)并不是父类所有的方法和成员变量子类都可以继承(private 修饰就不可以)
//此时父类结构不可被继承
public class Father{
String name;
String mobile;
private String hobbit;//此变量不可被子类继承
int age;
//...
}
3)如果子类成员变量“名”和父类相同,则子类对象调用的是子类中的变量;(不考虑数据类型,只考虑名字)
//父类结构
public class Father{
String name = “张氏”;
String mobile;
int age = 42;
//...
}
//子类继承父类
public class Son extends Father{
String address;
String age = "18";
//