3分钟学会java中的继承方法
继承介绍
继承的概念:继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
继承的语法
在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下:
class 父类 {
。。。
}
class 子类 extends 父类 {
。。。
}
继承后的优点
1.优点:
- 提高代码的复用性。
- 类与类之间产生了关系,是多态的前提。
2.成员方法
1、成员方法不重名
如果子类父类中出现不重名的成员方法,这时的调用是没有影响的。
调用方法时,先在子类中查找有没有对应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法。
2、成员方法重名
如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,并且分为两种情况。
- 如果子类出现与父类重名方法,但是方法参数不同,这种情况属于方法重载;
- 如果子类出现与父类重名方法,同时方法参数也相同,这种情况叫做方法重写Override。
方法重写 :子类中出现与父类一模一样的方法时(方法名和参数列表都相同,重写的返回值类型相同或者是父类方法的子类),会出现覆盖效果,也称为重写或者复写。
3.构造方法
-
构造方法的名字是与类名一致的。所以子类是无法继承父类构造方法的。
-
构造方法的作用是创建对象并初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构造方法中默认有一个 super() ,表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。
举例编程题说明
(1)蛇怪类:
属性包括:怪物名字,生命值,攻击力
方法包括:攻击,移动(曲线移动),补血(当生命值<10时,可以补加20生命值)
(2)蜈蚣精类:
属性包括:怪物名字,生命值,攻击力
方法包括:攻击,移动(飞行移动)
(3)要求:
1)分析蛇怪和蜈蚣精的公共成员,提取出父类—怪物类
2)利用继承机制,实现蛇怪类和蜈蚣精类
3)攻击方法,描述攻击状态。内容包括怪物名字,生命值,攻击力
4)编写测试类,分别测试蛇怪和蜈蚣精的对象及相关方法。
怪物类代码:
public class monster {
public String name;
public String life=“生命值为1200”;
public String attack=“攻击力为40”;
public void attack(){
System.out.println("怪物攻击");
}
public void move(){
System.out.println("怪物移动");
}
}
蜈蚣精类代码:
public class chong extends monster {
public String name ;
public void move(){
System.out.println("飞行移动");
}
}
蛇怪类代码:
public class snake extends monster {
public String name ;
public void move(){
System.out.println("曲线移动");
}
public void hp(){
System.out.println("补血(当生命值<10时,可以补加20生命值)");
}
}
测试代码
public class demo {
public static void main(String[] args) {
snake snake = new snake();
chong chong = new chong();
snake.name = “蛇怪”;
snake.move();
snake.hp();
snake.attack();
System.out.println(snake.name);
System.out.println(snake.life);
System.out.println(snake.attack);
chong.name="蜈蚣精";
chong.move();
chong.attack();
System.out.println(chong.name);
System.out.println(chong.life);
}
}
上一篇: 好喝到飞起的日本饮料 波子汽水上榜 高千穗牧场性价比高
下一篇: vue-pdf预览pdf文件流
推荐阅读
-
浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别
-
浅谈Java中hashCode的正确求值方法
-
详解java中的深拷贝和浅拷贝(clone()方法的重写、使用序列化实现真正的深拷贝)
-
JAVA中4种解析XML文件的方法
-
Java中对象数组的使用方法详解
-
Java中数组操作 java.util.Arrays 类常用方法的使用
-
Javascript中类式继承和原型式继承的实现方法和区别之处
-
对python中类的继承与方法重写介绍
-
[python] 在 python2和3中关于类继承的 super方法简要说明
-
【Java必修课】通过Value获取Map中的键值Key的四种方法