8.什么是继承?
继承:
其实和生活中的一样的,现实世界中的继承是无处不在的,就比如说最简单的动物,动物它是一个很高的分类,比如动物下面还有许多分类,哺乳动物,爬行动物等等。哺乳动物还要再往下细分。一层一层的分级,咱们之前说的封装它是对一个对象的封装,对一个类的封装,比如说类它都有属性,方法。那类如果太多也得进行抽象。比如说国家,这么多人为什么他们叫中国人、美国人、日本人。所以说,人是一个很广泛的,下面还通过一些国家、地区、皮肤、色种、来去判断出来更加细分的一些类。继承呢?其实也差不多,本质它是对一批类的抽象,从而让咱们的代码去慢慢的实现世界上的一些的建模。
封装是关于底层的,继承相当于整个宏观的把握,最后多态也是要有继承的一个前提。extends的意思是"扩展"。子类是父类的扩展。
继承是类和类的一种关系。因为我们是一个类继承另外一个类。除此之外,类和类之间的关系还有依赖、组合、聚合等等
继承的关系分为两个类,第一个为子类(派生类),第二个叫做父类(基类)。一般叫做父子关系就好。子类继承父类,使用关键字extends来表示。
子类和父类之间,从意义上来讲应该具有"is a"的关系.
Java中类只有单继承,没有多继承!就像一个儿子只能有一个爸爸,但一个爸爸可以有多个儿子。
1 package com.oop.demo05; 2 3 //Java中,所有的类,都默认直接或者间接的继承Object类 4 //Person 人 5 public class Person { 6 7 //public 公共的 8 //protected 受保护的 9 //default 不写就是默认的 10 //private 私有的 11 public int money = 10_0000_0000; 12 13 public void say() { 14 System.out.println("说了一句话"); 15 } 16 17 }
1 package com.oop.demo05; 2 3 //学生 is 人:派生类,子类 4 //子类继承了父类,就会拥有父类的全部方法 5 public class Student extends Person { 6 7 //Ctrl+H 8 }
1 package com.oop.demo05; 2 3 //Teacher is 人:派生类 ,子类 4 public class Teacher extends Person { 5 }
1 package com.oop; 2 3 import com.oop.demo05.Student; 4 5 public class Application { 6 7 public static void main(String[] args) { 8 9 Student student = new Student(); 10 student.say();//说了一句话 11 System.out.println(student.money);//1000000000 12 13 } 14 }