<返回更多

想进入大厂的程序员必须掌握的java特性!

2023-08-08    Java小玖
加入收藏

一,前言

今天总结一下关于JAVA的三大特性,封装,继承,多态。其实关于三大特性对于从事编程人员来说都是基本的了,毕竟只要接触Java这些都是先要认识的,接下来就系统总结一下。

二,封装

​ 先来说说特性之一:封装

2.1,什么是封装

​ 封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。

​ 举个比较通俗的例子,比如我们的USB接口。如果我们需要外设且只需要将设备接入USB接口中,而内部是如何工作的,对于使用者来说并不重要。而USB接口就是对外提供的访问接口。

​ 说了这么多,那为什么使用封装?

2.2,封装的特点

2.3,封装的使用

   public class Overloading {
       public int test(){
           System.out.println("test1");
           return 1;
       }
       public void test(int a){
           System.out.println("test2");
       }   
       //以下两个参数类型顺序不同
       public String test(int a,String s){
           System.out.println("test3");
           return "returntest3";
       }   
       public String test(String s,int a){
           System.out.println("test4");
           return "returntest4";
       }    
       public static void main(String[] args){
           Overloading o = new Overloading();
           System.out.println(o.test());
           o.test(1);
           System.out.println(o.test(1,"test3"));
           System.out.println(o.test("test4",1));
       }
   }

​ 重载规则:

​ 1,被重载的方法必须改变参数列表(参数个数或者类型不一样)。

​ 2,被重载的方法可以改变返回类型。

​ 3,被重载的方法可以改变访问修饰符。

3.5,this,super关键字

super()关键字的用法
​ 1,子类的成员方法中,访问父类的成员变量。

​ 2,子类的成员方法中,访问父类的成员方法。
3,子类的构造方法中,访问父类的构造方法。

this关键字用法:
​ 1,本类成员方法中,访问本类的成员变量。
​ 2,本类成员方法中,访问本类的另一个成员方法。
3,本类的构造方法中,访问本类的另一个构造方法。
​ 注意:

3.6,构造器

​ 继承关系中,父子类构造方法的访问特点:
​ 1,在子类构造方法中有一个默认隐含的super();调用,因此一定是先调用父类构造方法,再调用子类构造方法。
​ 2,子类构造可以通过super();调用父类的重载构造。(重载)
​ 3,super();的父类调用构造方法,必须在子类构造中的第一行,就是第一个;号结束的元素,并且只能调用一次。

3.7,关于继承的注意事项:

​ 1,Java语言是单继承的,一个子类只能有唯一一个父类
​ 2,Java语言可以是多级继承,一个子类有一个父类,一个父类还可以有一个父类。
​ 3,一个子类只有一个父类,但是一个父类可以有多个子类。

 

四,多态

4.1,什么是多态

​ 多态是同一个行为具有多个不同表现形式或形态的能力。

4.2,多态的特点

​ 1,消除类型之间的耦合关系,实现低耦合。

​ 2,灵活性。

​ 3,可扩充性。

​ 4,可替换性。

4.3,多态的体现形式

   public class MultiDemo {
       public static void main(String[] args) {
           // 多态的引用,就是向上转型
           Animals dog = new Dog();
           dog.eat();
           
           Animals cat = new Cat();
           cat.eat();
           
           // 如果要调用父类中没有的方法,则要向下转型
           Dog dogDown = (Dog)dog;
           dogDown.watchDoor();
   
       }
   }
   class Animals {
       public void eat(){
           System.out.println("动物吃饭!");
       }
   }
   class Dog extends Animals{
       public void eat(){
           System.out.println("狗在吃骨头!");
       }
       public void watchDoor(){
           System.out.println("狗看门!");
       }
   }
   class Cat extends Animals{
       public void eat(){
           System.out.println("猫在吃鱼!");
       }
   }

4.4,向上转型

1,格式:父类名称 对象名 = new 子类名称(); 
      含义:右侧创建一个子类对象,把它当作父类来使用。
      注意:向上转型一定是安全的。
      缺点:一旦向上转型,子类中原本特有的方法就不能再被调用了。	

 

五,接口

​ 最后,关于接口方面的细节,不同版本之间的区别。

问题描述:

​ 现在接口中需要抽取一个公有的方法,用来解决默认方法中代码重复的问题。
​ 但是这个共有的方法不能让实现类实现,所以应该设置为私有化。

在JDK8之后:

​ 1,default修饰,接口里允许定义默认的方法,但默认方法也可以覆盖重写。
​ 2,接口里允许定义静态方法。

在JDK9之后:

​ 1,普通私有方法,解决多个默认方法之间代码重复的问题。
​ 2,静态私有化,解决多个静态方法之间代码重复问题。
​ 接口的注意事项:
​ 1,不能通过接口的实现类对象去调用接口中的静态方法。
​ 正确语法:接口名称调用静态方法。

接口当中的常量的使用:

​ 1,接口当中定义的常量:可以省略public static final。
​ 2,接口当中定义的常量:必须进行赋值。
​ 3,接口当中定义的常量:常量的名称要全部大写,多个名称之间使用下划线进行分割。

使用接口的注意事项:

​ 1,接口是没有静态代码块或者构造方法
​ 2,一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。
​ 3,如果实现类没有覆盖重写接口中所有的抽象方法,那么实现类就必须是一个抽象类
​ 4,如果实现类中实现多个接口,存在重复的抽象方法,那么只需要覆盖重写一次即可。
​ 5,在Java中,如果实现类的直接继承父类与实现接口发生冲突时,父类优先级高于接口。

接口之间的关系:

​ 1,多个接口之间是继承关系。
​ 2,多个父接口当中默认方法如果重复,那么子接口必须进行默认方法的覆盖重写。

六,总结

​ 关于Java的特性基本总结完毕,当然还有一些细节没有完善。其实对于这些Java基础一定要掌握并熟记,因为这与我们的实际开发密切相关,好的编码习惯才能铸就好的产品,才能被社会认可。

关键词:java      点击(12)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多java相关>>>