类的继承笔记

语法:格式: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 ();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值