A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

济南校区java基础-继承        
大家都知道面向对象有三大特征,封装、继承、多态,我们今天就和大家聊一聊继承的概念和在我们平时开发中的用法。
继承的概念:在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。
继承的格式:在程序中,如果想声明一个类继承另一个类,需要使用extends关键字。如下:class 子类 extends 父类 {}。
代码如下:
[Java] 纯文本查看 复制代码
 package com.itheima_01;

/*

 * 继承:多个类有共同的成员变量和成员方法,抽取到另外一个类中(父类),在让多个类去继承这个父类,我们的多个类就可以获取到父类中的成员了。

 * extends

 *

 */

public class ExtendsDemo {

public static void main(String[] args) {

DotA1 d = new DotA1();

d.start();


LOL1 l = new LOL1();

l.start();

}

}

 

class Game1 {

String name;

double version;//版本号

String agent;//代理商


public void start() {

System.out.println("游戏启动了");

}


public void stop() {

System.out.println("游戏关闭了");

}

}

 

class DotA1 extends Game1 {

/*String name;

double version;//版本号

String agent;//代理商


public void start() {

System.out.println("游戏启动了");

}


public void stop() {

System.out.println("游戏关闭了");

}*/

}

 

class LOL1 extends Game1 {

/*String name;

double version;//版本号

String agent;//代理商


public void start() {

System.out.println("游戏启动了");

}


public void stop() {

System.out.println("游戏关闭了");

}*/


}
继承的特点:
在类的继承中,需要注意一些问题,具体如下:
1、在Java中,类只支持单继承,不允许多继承,也就是说一个类只能有一个直接父类,例如下面这种情况是不合法的。
class A{}
     class B{}
     class C extends A,B{}  // C类不可以同时继承A类和B
2、多个类可以继承一个父类,例如下面这种情况是允许的。
     class A{}
     class B extends A{}
     class C extends A{}   // B和类C都可以继承类A
3、在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的子类
4、在Java中,子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类。例如上面的这种情况中,B类是A类的子类,同时又是C类的父类
继承中成员变量的特点:
A:子类只能获取父类非私有成员
子父类中成员变量的名字不一样直接获取父类的成员变量
子父类中成员变量名字是一样的获取的是子类的成员变量
B:就近原则:谁离我近我        就用谁
如果有局部变量就使用局部变量
如果没有局部变量,有子类的成员变量就使用子类的成员变量
如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量
C: super:可以获取父类的成员变量和成员方法,用法和this是相似的
代码如下:
[Java] 纯文本查看 复制代码
package com.itheima_01;

/*

 * 继承中成员变量的特点

 * 子类只能获取父类非私有成员

 * 子父类中成员变量的名字不一样直接获取父类的成员变量

 * 子父类中成员变量名字是一样的获取的是子类的成员变量

 *

 * 就近原则:谁离我近我就用谁

 * 如果有局部变量就使用局部变量

 * 如果没有局部变量,有子类的成员变量就使用子类的成员变量

 * 如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量

 * 啥都没有,出错了!!!

 *

 * super:可以获取父类的成员变量和成员方法,用法和this是相似的

 */

public class ExtendsDemo3 {

public static void main(String[] args) {

Kid3 k = new Kid3();

k.show();

}

}

 

class Dad3 {

String name = "建霖";

}

 

class Kid3 extends Dad3 {

String name = "四葱";


public void show() {

String name = "五葱";


System.out.println(super.name);

System.out.println(this.name);

System.out.println(name);

}

}
好了,今天和大家聊继承就到这里,希望大家在闲暇时间多多联系,毕竟编程只有多敲多练才能掌握住。

如果你想了解更多黑马课程,如果你想加入黑马这个大家庭学习先进技术,光交天下好友,那就快来吧!
     黑马程序员济南中心联系电话:0531-55696830

1 个回复

正序浏览
我来占层楼啊   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马