大家好,今天给大家分享一下Java的继承
继承的本质是对某一批类的抽象,从而实现对显示世界的建模
extends的意思是 “扩展” 。子类是父类的扩展
Java当中只有单继承,没有多继承(一个儿子只能有一个父亲,但是一个父亲可以有多个儿子)
继承是类与类之间一种关系,除此之外,类和类之间的关系还有依赖,组合,聚合等
继承关系的两个类,一个为子类(派生类),一个为父类(基类),子类继承父类,使用关键字 extends来表示
子类和父类之间,从意义上说有 is a 的关系
看代码
新建Person类
package Demo09;
//Person 人 :父类
public class Person {
}
新建student类
package Demo09;
//学生 is 人 :派生类,子类
public class student {
}
让student继承person
package Demo09;
//学生 is 人 :派生类 子类
public class student extends Person {
}
让teacher继承 person
package Demo09;
//老师 is 人
public class teacher extends Person{
}
上面的操作就是student,teacher类都继承了person
teacher 和student类都是person类的派生类,(子类)
person 是父类
在父类中写一个方法
package Demo09;
//Person 人
public class Person {
public void say(){
System.out.println("说了一句话");
}
}
此时的student类里边没有写什么
package Demo09;
//学生 is 人 :派生类,子类
public class student extends Person {
}
package Demo09;
public class Application {
public static void main(String[] args) {
student student =new student();
student.say();
}
}
执行结果
我们可以发现
student当中什么也没写,但是成功输出结果,
即:子类可以继承父类所有的方法
下面再做一个
在父类person中写上10个亿
package Demo09;
//Person 人
public class Person {
public int money =10_0000_0000;//jdk7的新特性
public void say(){
System.out.println("说了一句话");
}
}
子类student输出
package Demo09;
public class Application {
public static void main(String[] args) {
student student =new student();
student.say();
System.out.println(student.money);
}
}
看执行结果
package Demo09;
//Person 人
public class Person {
private int money =10_0000_0000;//jdk7的新特性
//修饰符改成私有
public void say(){
System.out.println("说了一句话");
}
}
package Demo09;
public class Application {
public static void main(String[] args) {
student student =new student();
student.say();
System.out.println(student.money); //money 这一词会冒红
//因为父类的修饰符为私有,因此不可被调用
//也无法继承
}
}
这个时候,如果我们不改私有化,同时要对指定属性进行继承
我们可以通过封装的方法设置方法
package Demo09;
//Person 人
public class Person {
private int money =10_0000_0000;//jdk7的新特性
public void say(){
System.out.println("说了一句话");
}
public void setMoney(int money) {
this.money = money;
}
public int getMoney() {
return money;
}
}
截图当中,我们可以看见 person类,student类,teacher类
除此之外,我们还看见一个Object 类
即在Java当中,所有的类,都默认直接或者间接的继承Object这个类4
package Demo09;
//Person 人
public class Person {
String //按住 ctrl 键再点它就可以了
}
package Demo09;
//Person 人
public class Person extends Object {
String //按住 ctrl 键再点它就可以了
}
Object写或不写没关系
好了,Java继承就讲到这里了,谢谢大家