Java 第四天 继承
1.1 为什么要使用继承
我们使用对象用来存储数据,要想使用对象首先得有类。在一个项目中,可能有很多数据需要我们存储
例如:存储狗的信息 猫的信息 人的信息 等等 不同的信息需要不同的类去创建不同的对象
假如现在需要创建狗类 : 编号 名字 价格 猫类:编号 名字 品种
此时你就去完成这个操作
public class Dog {
int id;
String name;
double price;
}
public class Cat {
int id;
String name;
String type;
}
当你完成了,过了很久,此时需要把 id 和 name 换成animalID animalName
此时你需要一个一个的都换(假如有一万个)
public class Dog {
int animalID;
String animalName;
double price;
}
public class Cat {
int animalID;
String animalName;
String type;
}
这个操作太麻烦(不嫌弃麻烦的 面向过程思想 java是一种面向对象语言-java支持面向对象思想的那些语法)所以我们需要优化一波
所以我们希望达到的效果: 创建狗类 : 编号 名字 价格 猫类:编号 名字 品种 并且后期如果要修改 改一次全都改完
所以他们就创造了一个语法 能满足你的需求 后来将这个语法命名为 继承
1.2 使用继承语法解决问题
A 创建一个新的类 Animal
B 在Animal中添加成员变量 (多个类共有的)
C 狗猫不再写 id name 共有的内容
D 狗猫继承于Animal
public class Animal {
int id;
String name;
}
public class Cat extends Animal{
String type;
}
public class Dog extends Animal{
double price;
}
public class JavaTest {
public static void main(String[] args) {
Dog d1 = new Dog();
d1.id = 666;
d1.name = "旺财";
d1.price = 66645;
Cat c1 = new Cat();
c1.id = 777;
c1.name = "威廉";
c1.type = "狸花猫";
}
}
1.3 内存模型
![]()
![]()
1.4 继承语法规则
1 继承使用 extends 关键字
public class Cat extends Animal{
String type;
}
2 java中类的关系(提问:java中是单继承还是多继承)
类 类 继承关系 单继承
类 接口 实现关系 多实现 (弥补java单继承的局限性 因为java刚造出来的时候 吹牛说 我们基于c++并且摒弃了c++中晦涩难懂的多继承多指针的概念)
接口 接口 继承关系 多继承
Class cannot extend multiple classes
public class Cat extends Animal,People{
String type;
}
3 类和类之间建立继承关系 则子类可以访问父类权限达到的内容
提问:私有的可以被继承吗?
不可以 因为私有的无法被子类访问 可以 但是私有的不能被子类访问
4 一个类不写extends 默认继承Object(祖宗类 基类 超类)
验证规则:Animal没有写继承 但是可以调用notify () 此时证明其继承于Object
public static void main(String[] args) {
Animal a1 = new Animal();
a1.notify();
}
提问: Object 有哪些函数 各自的作用