首页 > 技术文章 > java抽象类以及接口相关知识点

LiangQiong 2021-08-16 00:26 原文

java基础

 

类型转换

当子类转父类的时候,可以自动转换;——但可能丢失一些原本的方法;低转高

当父类转为子类的时候,需要进行强制性转换;——高转低

作用:方便方法的调用,减少重复的代码;

static:静态 有了static的可以直接通过类进行访问,也可以通过实例化对象访问;

而非静态变量需要通过实例化的对象进行访问;

非静态的可以调用静态方法,静态方法也可以调用静态方法,但是静态方法不能调用非静态;

public class rub {
  {
       System.out.println("匿名代码块!");
  }//第二个执行:赋初始值;
   
   static {
       System.out.println("静态代码块!");
  }//只执行一次;且是最开始执行的;
   

   public rub() {
       System.out.println("构造方法");
  }

呗fanal修饰的类不能被继承;

抽象类 abstruct

abstract,抽象方法,只有方法名字,没有方法的实现;

public abstract void dosomething();//不能new这个抽象类,只能靠子类去实现它;

当子类需要继承的时候,就需要重写该方法;

public class den extends Applica {
   @Override
   public void dosomething() {

  }
}

extends:只能单继承,接口可以多继承;

抽象方法必须在抽象类中;

抽象类中可以写普通的方法;

可以提高开发效率;

接口 interface

1、接口无法写方法,约束和实现分离;——接口无法进行实现,只是写方法并将不同的方法实现;

2、接口的所有定义都是默认抽象类的——潜台词,进行方法的实现(可以让不同的人完成)

3、接口可以实现多继承,但是实现接口中的类的时候,需要在子类中重写全部的方法;

定义属性就会是常量:默认为 public static fanal ...;

String name="小张";//常量小张

接口的定义:

package Deomn09;

public interface Userservice {
   String name="小张";
   void add(String name);
   void delete(String name);
   void update(String name);
   void query(String name);
}

对接口的继承:

package Deomn09;

public class Uesrserviceimpl implements Userservice,Timeservice {//可以继承多个接口;
   @Override
   public void add(String name) {

  }

   @Override
   public void delete(String name) {

  }

   @Override
   public void update(String name) {

  }

   @Override
   public void query(String name) {

  }

   @Override
   public void timer() {

  }
}

 

推荐阅读