静态static 类图 继承

静态

静态关键字static 大部分都是公共的public 使用static修饰属性

public class Student{

public static String name;

}

这个学生类的name属性就被static修饰,那么static有什么用?

在测试类Test里面创建了Student类对象那么就可以用类名直接调用。

并且被static关键字修饰的属性被赋值了的话,你再创建一个Student类对象它被static修饰的属性也会被影响

输出的结果就会是"小白"

static、非private修饰

 非staticprivate修饰

属性

类属性、类变量

实例属性、实例变量

方法

类方法

实例方法

调用方式

类名.属性

类名.方法()

对象.属性

对象.方法()

对象.属性

对象.方法()

归属

单个对象

类图

 

 下面这个就是类图   

第一层级代表类名,第二层级代表属性,第三层级代表方法

"+"表示public  "-"代表private 属性冒号后面的是数据类型

方法冒号后面的是返回值类型

 

继承

继承关键字extends

将重复代码抽取到父类中防止代码冗余
继承优化后:方便修改代码减少代码量,开发时间短,开发效率快

继承是单向性的一个类可以有多个子类,但是只能有一个父类

先创建一个动物类(父类)

public class Anmina{

}

在创建2个子类Dog狗类Cat猫类我们之前看了要用关键字extends 如下

public class Cat extends Anmina{

}

public class Dog extends Anmina{

}

那么我们使用了继承有什么用?

先看属性

 首先我们在父类定义一个name属性在吧name封装

然后猫类和狗类都不变

 在测试类中可以直接调用到猫类父类里面的方法

如果我们在猫类里面创建一个在父类里面也有的方法

在父类里面加一个方法

在猫类里面也加一个 

那么

 我们在测试类中输出结果是“猫在吃”

如果我们想要调用父类的“我在吃”

那么就要用一个新的关键字super 用法super.方法名();

super作用就是调用父类

再次调用eat就可以实现调用父类的“我在吃”也会运行“猫在吃”

 

这是方法的重写

//共有的方法吃
//父类声明吃方法的时候是无法具体到谁在吃
// 所以父类声明的方法一定是共同性、宽泛

 构造方法的继承

先在父类里面创建一个构造方法

再在猫类里面创建一个构造方法

在测试类中创建对象

 输出结果是父类构造方法也运行,子类方法也运行

因为我们在子类创建构造方法的时候默认第一行是会输出一个super();

super()会调用父类的构造方法

如果父类中的构造方法里面加一个参数 

那么我们子类就会报错因为子类会默认调用一个super();方法自动调用父类构造方法

我们只能在super()括号里面添加参数

//只要父类构造方法不发生重载(保留无参的)子类无需改动
//如果父类没有无参构造方法了
//那么所有子类都必须手动引用父类新的构造方法来确保“先构造父再构造子”这一法则

重载与重写的区别

重载:方法名一致形参不一致
重写∶方法名、参数跟父类方法一致只是方法体内容不一样

我们的测试类创建了几个对象

3个Cat类会自动创建出父类Anmina

Anmina会自动创建出object

什么是object

//object是祖宗级
//1.先得到了0bject对象
//2.先得到Animal
//3.在创建cat对象
//总共创建了3个对象 object=>Animal=>cat

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咚微灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值