Java小白学点东西(基础)(8)

1Java三大特性为

java三大特性:封装 继承 和多态

1.1生活中的继承

子承父业

龙生龙,凤生凤,老鼠生来会打洞

你很像你的父亲

游戏里面 大量的继承 比如lol里面英雄都有qwer技能

1.2java 中继承的语法格式

java使用关键字: extends进行继承的操作

继承至少得有两个类

格式:

class B extends A {

}

B类继承了A类,A类是B类的唯一的父类或者叫超类或者叫基类

java中是单继承【一个儿子只能有亲生父亲】

B类是A类的子类

B类继承了A, A的东西(除了私有化的)都可以用!!!

成员属性:

公开的成员属性

子类能继承父类公开的成员属性

私有的成员属性

子类不能继承父类私有的成员属性

成员方法:

公开的成员方法

子类能继承父类公开的成员方法

私有的成员方法

子类不能继承父类私有的成员方法

构造方法:

无参数的构造方法

子类继承了父类,会把子类的无参构造方法执行,并且也会执行父类的无参构造方法。执行循序,先执行父类的无参构造,再执行子类的无参数的构造。

2.子类父类的内存分析图

实例化子类的时候,先执行的父类的构造方法,然后再子类的构造方法

3.super关键【有点鸡肋】

this调用当前对象的成员属性和成员方法。

this调用构造方法

super调用父类的成员属性和成员方法

【注意事项】:

1.必须有继承关系,如果想要使用super关键字

2.super关键字必须写在子类中。意思是让在子类中调用父类的一些东西

3.super.成员属性 只能写在子类的定义的方法中

4.super.方法() 只能写在子类定义的方法中

super调用构造方法:

格式:

super(参数);

【注意事项】:

1.一定要在子类的构造方法中去调用父类的构造方法

2.必须写在第一行

成员变量:

super.blood = 2000; 只能写在子类定义的方法中

成员方法:

super.haPi(); 只能在子类定义的方法中调用

构造方法:

在子类中的构造方法中去调用父类的构造方法。

4.重写【override】

子类通过继承可以使用父类的非私有化的成员方法,但是有的时候父类的方法需求不满足子类的需求了。在不改变父类的方法需求下,可以对父类的方法进行重写

重写条件:

1.必须有继承关系

2.父类的方法必须是公开的

3.子类的方法必须和父类的方法一样(返回值,方法名字,参数)

4.必须在子类中重写

5.重载【overload】

重载的条件

1.必须在同一个类中

2.方法名字必须一样,返回值必须一样,但是参数一定不一样!!!

class Person {
    //run这三个方法就是方法的重载
    //是方法名字一样  返回值一样   参数列表一定不同!!!
    //成员方法
    public void run () {
        System.out.println("在跑步");
    }
    public void run(String name) {
        System.out.println(name + "在跑步");
    }
    public void run (String name, int age) {
        System.out.println(name + ":" + age + "在跑步");
    }
}
public class Demo1 {
    public static void main(String[] args) {
        Person person = new Person();
        person.run();
        person.run("老邢");
        person.run("帅栋", 37);
    }
}
​

6.instanceof关键字

是java中二元运算符,左边是对象,右边是类。返回值是布尔类型

当左边对象是右边的类或者子类所创建的对象时候,返回true.否则返回false

语法格式:

person instanceof Object

public class Demo1 {
    public static void main(String[] args) {
​
        /*是java中二元运算符,左边是对象,右边是类。返回值是布尔类型
​
当左边对象是右边的类或者子类所创建的对象时候,返回true.否则返回false*/
        B b = new B();
        A a = new A();
        boolean result = b instanceof A;
        boolean result1 = a instanceof A;//true
​
        C c = new C();
        boolean result2 = c instanceof B;//true
        boolean result3 = c instanceof A;//true
​
        System.out.println(result);
    }
}
​

7.抽象类【abstract修饰的类】

7.1abstract关键字

1.abstract修饰成员方法叫抽象方法

2.abstarct修饰类 叫抽象类

【注意事项】:

1.abstract修饰成员方法,但是这个方法没有方法体

2.abstarct修饰的成员方法所在的类,也必须加上abstract修饰

3.abstract修饰的成员方法,没有方法体,没有实现的代码,是一个半成品

4.抽象类下面可以有非抽象的方法

5.抽象类下面可以没有抽象的方法,但是你叫抽象类

6.抽象类不能被实例化

7.抽象类能被继承,但是必须重写抽象方法,非抽象方法可重写可不重写

8.一个类只能继承一个抽象类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宇智波波奶茶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值