加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

JAVA基础(十)继承

发布时间:2020-12-15 05:30:50 所属栏目:Java 来源:网络整理
导读:继承 自己理解 ?????????????????????? 获得父类的功能,强大自己,只能单向继承, class子类extends父类; ??????????? 重写:当子类需要父类的功能,当子类特有的功能与父类有元素或方法重名时,子类要继承父类的元素,就需要super. ????????? 父类中的成员

继承

自己理解

?????????????????????? 获得父类的功能,强大自己,只能单向继承,class子类extends父类;

??????????? 重写:当子类需要父类的功能,当子类特有的功能与父类有元素或方法重名时,子类要继承父类的元素,就需要super.

????????? 父类中的成员变量或者方法名.在main中调用子类也会获得父类的元素或者方法

当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。

继承:

定义:继承 就是让类与类之间产生关系-->父子关系

格式:class 类名1 extends 类名2{

????????????

???????????? }

类名1 继承于 类名2

类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法

继承的好处和弊端:

好处:

?????? 1.提高了代码的复用性

????????? 2.提高了代码的维护性

??????????? 3.让类与类之间产生了关系 是多态的前提

弊端:??

????????????? 1.类的耦合性增强了

java中类的继承特点:

???????????? .java中类只支持单继承 不支持多继承

????????????? .java支持多层继承(继承体系)

????????????? .一个父类 可以有多个子类

注意事项:

?????????????? 1.不能因为部分共性的内容 而盲目继承

?????????????? 2.子类只能继承父类非私有的成员(成员变量 成员方法)

???????????????? 3.父类的构造方法 不能被子类继承 但是可以通过super()进行调用

???????????????? 4. 子类在继承父类的时候,会自动拥有父类的成员。

??????????????? 5.一个类只能继承一个父类

???????????????? 6.一个父类可以被多个子类继承。

多层继承: ?????

???????????? 在Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类

?????????????? 例如C类继承自B类,而B类又可以去继承A类,这时,C类也可称作A类的子类。下面这种情况是允许的。

???? class A{}

???? class B extends A{}?? // 类B继承类A,类B是类A的子类

???? class C extends B{}?? // 类C继承类B,类C是类B的子类,同时也是类A的子类

继承-子父类中成员变量的特点以及重写

在子类中,访问父类中的成员变量格式:

???????????????????? super.父类中的成员变量

????????????????????? super只能写在子类里面

????????????????????? main方法调子类,同时也能获得父类属性

?

建父类

public class Fu {

?int i=1;

???????? public void eat() {

??????? ?//重写

??????? ?System.out.println("哈哈吃饭");

???????? }

}

键子类 关联父类

// 继承父类

public class Zi extends Fu{

???? int i=2;

???? public void show () {

??? ?int? i=3;

??? // System.out.println(i);//结果为3?? 就近元素 结果为3

??? ?//System.out.println(this.i); //结果为2? this指本类,结果为2

??? ?//System.out.println(super.i)//结果为1?? 父类

? ???//子父类中出现了同名的成员变量时

??????? //在子类中需要访问父类中非私有成员变量时,需要使用super关键字

??????? //访问父类中的i

?

???? }

? ?//重写

?

???? public void eat() {

??? ?super.eat();//获得父类的功能

??? ?System.out.println("xix");

??? ?

???? }

}

?

测试

//在继承中

/* 子类和父类出现重名成员变量是? 如果子类有,调子类的;

???????????????????????????????????????????????????????????????????????????????????????????????????????????? 如果子类没有,调父类的;*/

public class demo01 {

? public static void main(String[] args) {

???? Zi z = new Zi();//创建子类对象

???? System.out.println(z.i);// 结果为2 就近原则

//重写

???? z.eat();

/*子类有eat方法

父类有eat方法

l? 子父类中成员方法的特点

当在程序中通过对象调用方法时,会先在子类中查找有没有对应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法。

l? 成员方法特殊情况——覆盖

子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为override重写、复写或者覆盖。

?? 为了能够同时获得子类父类的方法(功能),就需要子类继承父类的功能super.eat();//获得父类的功能

???

?

*/

? }

?

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读