语法:格式:class 子类名 extends 父类名{}
举例
package PM;
public class FJC {
String name;
String ID;
Sting moblie;
int age;
public void pf(){
name="Shawn";
ID = "GLHBOSS";
mobile="130000000";
age = 21;
System.out.println("姓名:"+name);
}
class Fjc extends FJC{
}
public static void main(String[] args) {
Fjc fjc = new Fjc;
fjc.pf();
}
}
那么我们说到继承的时候主要说了哪些东西,继承的药店
1.是继承一个副本到自己身上
2.调用的过程一定是实例或者(对象)来调用
3.继承会继承属性和方法。好处:实现代码复用
4.规定 类 属性和方法在不同域之间的调用权限;规定类的成员之间的范围
(1)Public 整个目录下 src lib
(2)private 类里面的这个{}里
(3)protected 同一个包下, 不同包下的子类{}中
(4)缺省 同包下
5.关于变量初始化的问题,
属性变量——不需要初始化
参数变量——不需要初始化-调用方法时必须传入对应类型的数据
局部变量-——必须初始化
关于这一部分并不需要硬记,而是去思考其原因,属性变量,会在方法里调用,初始值默认是0,并不影响其使用。参数变量在使用的时候会传入一个数据,因此初始化并不必要。而局部变量,因为后续没有更改的机会,因此必须初始化。
public class Student{
public int num0;
private String name;
protected int id;
int age;
public void test1(int num1){
int num=0;
System.out.println(num);
}
public void test2(){
int num = 500;
}
public void test3(){
int num = 800;
}
public static void main(String[] args){
String str = "XXX";
str.equals ("");
}
}
6.方法重写
-子类之间大致相同(如果完全相同也不用写这么多子类),一般来说各有特点
-子类可以在自己类中定义自己这一类的属性和方法
子类之间行为名一致,但是行为不一致。
通常在应用中,在父类里吧行为定义的抽象一些,子类重写父类的方法,来扩展
举个例子,有一个list的参数,然后需要对这些参数抽签,然后可以在父类中写一个读取数据列表的方法,然后写一个简单的抽签的方法。
然后子类继承以后,重写方法,可以给出比如分层抽样等等的抽样法。
具体的语法:
-子类重写父类的方法,一般要求除方法提之外,都和父类一致。
·····这里给出一个检验方法,使用@override//朱姐,检查重写是否正确
-子类以及子类的对象会有限调用重写之后的方法,也就是说一旦重写以后新方法会覆盖掉子类里的旧方法
-子类,孙子类 向上是一直是继承,方法全部继承自上一级父类
方法重写的有点
-代码逻辑和差异 结果可以体验出来,这里可以写个代码举举 例子
-代码复用
在这里放一下课堂演示的代码,有时间自己去操作一版
/**
* 父类 Object 所有类的隐式父类
*/
public class Student{
public String name;
private String pwd;
protected int age;
int id;
// 打印信息
public void printInfo(){
System.out.println ("name:"+name);
System.out.println ("pwd:"+pwd);
System.out.println ("age:"+age);
System.out.println ("id:"+id);
}
public void read(){
System.out.println ("父类: 读书!!");
}
}
class UNStudent extends Student{
public void showPwd(){
// System.out.println (pwd);
super.read();// 在子类中调用父类的方法
}
// 子类重写的父类的方法
@Override // 注解 检查重写是否正确
public void read(){ // 写的不是重写的方法 报错
super.read ();
System.out.println ("子类重写: 读书!!");
System.out.println ("一目十行!!");
}
}
class CSUStudent extends UNStudent{
public void test(){
read();
super.read ();
}
// public void read(){
// System.out.println ("CSU read");
// }
}
class Manage{
public static void main(String[] args){
Student stu = new Student ();
stu.printInfo ();
stu.read ();
UNStudent unstu = new UNStudent ();
unstu.printInfo ();
// unstu.read ();
CSUStudent csustu = new CSUStudent ();
csustu.printInfo ();
csustu.read ();
csustu.test ();
}
}