Java基础知识五:继承、多态、抽象类与接口、内部类、Math类、Object类、Array类

继承

1、继承概述

29b18a7972a64f5895762b76d427933f.png 

2、Super关键字与this关键字有区别

81062906018f40e3bebc60cd725b7b8a.png 

3、继承中构造方法的访问特点

67382b6936d34904be0c5de654454165.png 

4、继承中成员方法的访问特点

6a1d02347b914efb9d80b0a4047ec82b.png 

5、方法的重写

68b18e11657349f89a0c8c2d464fdefb.png 

ee1e384b583149a282ba570714d3c3c4.png 

注:控制台编译时,自动建包,如:javac -d. Demo.java

6、权限修饰符

c7e5edbebc7745409d0c253468812dd7.png 

7、状态修饰符final、static

1.被final修饰的方法是最终方法,是不能被重写的

2.被final修饰的基本类型变量叫常量,常量的值不能发生改变

3.被final修饰的类是最终类,不能被继承

4.被final修饰的引用类型变量,值可以改变,引用类型地址值不能改变

900da11b365c4964be864e4f09f0ccf2.png 

5. 被static修饰的变量,赋值一次即可,使用时,直接类名调用变量,如: Student.name=”名字”

bc2083e6da82472889d6147a70fbe78a.png 

6. 静态的成员方法中,只能访问静态的成员变量、静态的成员方法

7. 非静态成员方法中,可以访问本类中所有的成员变量、成员方法

多态

1、多态:基本概述

1.多态调用成员变量时,编译看左边,运行结果看左边

2.多态调用成员方法时,编译看左边,运行结果看右边(前提:子类重写了父类中已有的方法)

3.多态调用的成员变量,必须要是父类中有的成员变量,否则会报错

2、多态的好处与弊端

0859ccdcd1ce44358087a70f2d1b9a29.png 

3、多态的转型

4.多态的转型:

向上转型:父类应用指向子类对象,如:Animal a = new Cat();

向下转型:父类应用转向子类对象,如:Cat c = (Cat)a; 把父类强转为子类对象,这样就可以创建一个对象也能访问子类特有成员

抽象与接口

1、抽象(abstract)

1. 类中有抽象方法时,该类也必须定义为抽象类

2. 抽象类不能直接创建对象,必须有子类继承后,重写抽象类中所有的抽象方法,才能创建多态调用的方式来创建对象

3. 如果子类继承抽象类后,不重写抽象类中的抽象方法时,子类也必须定义为抽象类

2、抽象类的成员特点

938b6a64732f49a9aaab6105b509da9e.png 

3、接口的特点

e2aa370b4b904397a1c880e895d502c7.png 

1实现接口的类必须要重写接口中的方法,如果不写方法就要把实现类修改成抽象类,但实现类的子类在继承实现类后,还是需要重写接口中的方法,不然会报错

2.接口中的成员属性默认是fianl修饰,其值不能被修改,也是被默认静态修饰的 如:public static final .....

3.可以通过实现类的类名直接访问成员属性的值

4.接口中没有构造方法,因为接口主要是对行为进行抽象

5.接口中的方法只能是抽象的,如果不写abstract关键字修饰,它是默认有的,如:public abstract

6.一个类如果没有父类,它就是默认继承object

4、类与接口的关系

798b22ddaa034eb099be452b291d6b41.png 

5、抽象类与接口的区别

b435a3061d884b419c9f64bc3406a2f6.png

30cf21a5e8594721b685726c58dc6e66.png  

6、普通类名作为形参和返回值

2691224ace9c477c945c47ac571478c1.png 

7、抽象类名作为形参和返回值

cc1573bced4c4ac5b002eb2b9c78dcc7.png 

8、接口名作为形参和返回值

eae602d5c5f74a3fbd4ac65ba9425cfc.png 

内部类

1、内部类概述

441bd1c317c842b19ed5a6d7ced92df7.png 

2、成员内部类概述

721157683e6f478ba6cb77d899ecece4.png 

1.成员/局部内部类的使用通常是:内部类设置为私有,在外部类中定义一个方法,在方法中创建内部类对象并调用内部类中的方法,测试类中直接创建外部类对象,用对象调用外部类方法的间接方式访问内部类成员

3、局部内部类概述

ca5aa8737de74f4893f3c77945028f96.png 

Math类、Object类、Array类

1、Math类常用方法概述

1e14415032f64dc293f850ee86d44839.png 

查看源码:选中方法,按Ctrl+B

2、Object类常用方法概述

2c5bb940e7c64801a5ac156b1e83b5ca.png 

3、Array类的概述与常用方法

5b5e6c3d46d342f68cb3cd59cbb5aa7b.png 

//利用Arrays的sort()方法对数组进行自动排序
int[] arr = {12,23,34,4,5,65,5,6,22,22,4553,6432,89};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蜀州凯哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值