继承体系
1、类的概念
类:即不同物体,具有相同的属性的集合(抽象的,现实生活中不存在的)
对象:即实际存在的物体(具体的,客观存在的)
列如:
人类:属性:身高、体重、年龄.......
行为(方法):学习、运动、吃.....
面对对象编程首先会根据类构建一个对象
构建者要使对象完成一定的目标或目的,需要给对象指定一些方法与指令
方法的定义:
public void(返回类型) study(任取) (参数类型) {
指定的方法与指令
}
参数为指定的方法与指令所需
而返回值则由当前方法的构建者决定
例如: 一个警察和一个土匪PK,互相之间进行格斗伤害,最后血量为0的角色输,另 一方胜利
对象:警察对象、土匪对象
类:警察类、土匪类
public class jincha {
//定义警察的属性
public int gongjili;
public int xueliang;
public void gongji(tufei t) {
//警察攻击的方式
t.xueliang = t.xueliang - gongjili;
System.out.println(" 警察攻击土匪,土匪掉血,剩余 " + t.xueliang);
}
}
public class tufei {
//定义土匪的属性
public int xueliang;
public int gongjili;
public void gongji(jincha j) {
//土匪的攻击方式
j.xueliang = j.xueliang - gongjili;
System.out.println("土匪攻击警察,警察掉血,剩余血量:" + j.xueliang);
}
}
定义完成,开始格斗
public class gedou {
public static void main(String[] args) {
//给警察土匪血量、攻击力定义一个值
jincha jc = new jincha();
jc.xueliang = 10000;
jc.gongjili = 500;
tufei tf = new tufei();
tf.xueliang = 8000;
tf.gongjili = 6000;
//设置攻击次数
for (int i = 0; i < 100; i++) {
jc.gongji(tf);
tf.gongji(jc);
if (tf.xueliang <= 0) {
System.out.println("土匪输了");
break;
} else if (jc.xueliang <= 0) {
System.out.println("警察输了");
break;
}
}
}
}
2、继承
子类从父类中继承其属性及行为指令
格式:public class 子类类名 extends 父类类名{}
作用:代码过于繁杂、冗余,为了解决代码重复问题,把重复的属性和指令方法定义到父类中去,再通过继承方式实现定义
注意:一个子类只能有一个父类,不能多继承
可以多层继承,父类可以继续有父类
列如:
//首先创建一个父类
public class jisuanqi1 extends(继承)JFrame {
public void my() {
this.setSize(400, 500);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(3);
BorderLayout biakuang = new BorderLayout();
this.setLayout(biakuang);
this.setVisible(true);
}
}
//再创建一个子类
public class Tist {
public static void main(String[] args) {
//调用父类的方法
jisuanqi1 jsq = new jisuanqi1();
jsq.my();
}
}
3、方法重写
子类对于从父类继承过来的方法进行修改
修改的格式:方法名、返回方式和参数必须保持一致,对于过程或指令可随意修改
列如:
父类:
public class chonxin extends JFrame {
public void my() {
/*****this.setSize(400, 500);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(3);
BorderLayout biakuang = new BorderLayout();
this.setLayout(biakuang);
this.setVisible(true);****/ 标记备注内容可随意修改
}
}
子类:
public class Tist {
public void t(){
public static void main(String[] args) {
//调用父类的方法
chongxin jsq = new chongxin();
jsq.my();
public void my() {
/*****this.setSize(100, 50);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(3);
BorderLayout biakuang = new BorderLayout();
this.setLayout(biakuang);
this.setVisible(true);****/ 标记备注内容可随意修改
}
}
}