Java 继承和多态

1、继承

Java只支持单继承,也就是说,一个类不能继承多个类。

下面的做法是不合法的:

public class extends Animal, Mammal{}

Java只支持单继承(继承基本类和抽象类),但是我们可以用接口来实现(多继承接口来实现),脚本结构如:

public class Apple extends Fruit implements Fruit1, Fruit2{}

一般我们继承基本类和抽象类用extends关键字,实现接口类的继承用implements关键字。

 

源文档 <https://www.w3cschool.cn/java/java-inheritance.html>

 

2、Java 重写(Override)与重载(Overload)

 

Super关键字的使用

当需要在子类中调用父类的被重写方法时,要使用super关键字。

 

重写与重载之间的区别

区别点

重载方法

重写方法

参数列表

必须修改

一定不能修改

返回类型

可以修改

一定不能修改

异常

可以修改

可以减少或删除,一定不能抛出新的或者更广的异常

访问

可以修改

一定不能做更严格的限制(可以降低限制)

 

3、多态

打印机: 彩色打印机、黑白打印机

 

HashMap

map键值对,值一般存储的是对象。

hashmap中常用的方法:

put(object key,object value);

get(object key);//根据key值找出对应的value值。

判断键是否存在:containsKey(object key)

判断值是否存在:containsValue(object value)

 

1、Map的特性即「键-值」(Key-Value)匹配

java.util.HashMap实作了Map界面,

HashMap在内部实作使用哈希(Hash),很快的时间内可以寻得「键-值」匹配.

 

2、Map<String, String> map =    new HashMap<String, String>();

        String key1 = "caterpillar";

        String key2 = "justin";

        map.put(key1, "caterpillar的讯息");

        map.put(key2, "justin的讯息");

        

        System.out.println(map.get(key1));

        System.out.println(map.get(key2));

 

3、可以使用values()方法返回一个实作Collection的对象,当中包括所有的「值」对象

 

   Map<String, String> map =  new HashMap<String, String>();

 

        map.put("justin", "justin的讯息");

        map.put("momor", "momor的讯息");

        map.put("caterpillar", "caterpillar的讯息");

        

        Collection collection = map.values();

        Iterator iterator = collection.iterator();

        while(iterator.hasNext()) {

            System.out.println(iterator.next());

        }

        System.out.println();

 

4. Map<String, String> map =   new LinkedHashMap<String, String>();

        

        map.put("justin", "justin的讯息");

        map.put("momor", "momor的讯息");

        map.put("caterpillar", "caterpillar的讯息");

        

        for(String value : map.values()) {

            System.out.println(value);

        }

 

源文档 <https://blog.csdn.net/u014049880/article/details/52327732>

 

迭代器(Iterator)

        迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

Java中的Iterator功能比较简单,并且只能单向移动:

(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。

(2) 使用next()获得序列中的下一个元素。

(3) 使用hasNext()检查序列中是否还有元素。

(4) 使用remove()将迭代器新返回的元素删除。

Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

 

源文档 <https://www.cnblogs.com/lxqiaoyixuan/p/7156944.html>

 

 

@Value注解

Spring不仅可以通过xml配置获取*.properties,还可以通过@Value注解的方式来获取。

 

源文档 <http://tedhacker.top/2016/08/17/Spring-Value%E7%9A%84%E7%94%A8%E6%B3%95/>

 

2、

Properties properties = System.getProperties();

String os = properties.getProperty("os.name");

获取操作系统的名称

 

3、属性中的 @Autowired 

你可以在属性中使用 @Autowired 注解来除去 setter 方法。当时使用 为自动连接属性传递的时候,Spring 会将这些传递过来的值或者引用自动分配给那些属性。所以利用在属性中 @Autowired 的用法,

 

源文档 <https://blog.csdn.net/u013257679/article/details/52295106/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值