2020.10.22 instanceof(判断对象类型)类型转换 static关键字 抽象类 接口

it2025-07-27  6

instanceof

判断对象类型

判断对象a 是否和A , B ,Object存在继承关系

A a = new A(); B b = new A(); Object c = new A(); System.out.println(a instanceof A); System.out.println(a instanceof B); System.out.println(a instanceof Object); 输出:true true true

类型转换

1.父级转子级,向下转型,需要强制转换 2.子级转父级向上转型会丢失一些属性

static:和类一起加载

非静态变量可以被类直接调用,不需要new 一个对象

package com.baidu.www.operater.objec.duotai; public class B { private static int age;//静态变量 private double score;//非静态变量 public static void main(String[] args) { //静态变量可以被类直接调用 System.out.println(B.age); } }

非静态方法可以调用静态方法,静态方法不能调用非静态方法

package com.baidu.www.operater; public class 静态 { public static void go(){ } public void run(){ go(); } }

**静态代码块 匿名代码块 ** 静态代码块和类一起加载所以 首先出现(只加载一次) 匿名加载快可以用于赋初值

package com.baidu.www.operater; public class 静态 { { //匿名代码块 System.out.println("匿名代码块"); } static { //静态代码块 System.out.println("静态代码块"); } public 静态(){ System.out.println("a"); } public static void main(String[] args) { 静态 a = new 静态(); System.out.println("=========="); 静态 b = new 静态();//静态代码块只加载一次 } }

输出结果: 静态代码块 匿名代码块 a

========== 匿名代码块 a

抽象类

public abstract class A{ } 抽象类通过abstract实现 不能被new出来,只能通过子类(重写)来实现它; 抽象类中可以写普通方法,抽象方法只能在抽象类中;

接口

接口的定义 Interface public interface UserService{ } 1.接口中的方法都是抽象的,默认添加了Public stract; 接口中的属性都是常量,默认添加了 public static

package com.baidu.www.operater.Userservice; public interface UserService { //接口中的方法都是抽象的 public abstract void add(String name); void delete(String name); void update ( String name); void query(String name); } package com.baidu.www.operater.Userservice; public interface TimeService { void add(int time); void delete(int time); void update ( int time); void query(int time); }

2.接口的实现 接口的实现可以实现多个接口 实现接口的类必须重写接口中的方法 public class ServiceImpl implements +接口名{ }

package com.baidu.www.operater.Userservice; //接口可以多继承 //实现接口的类就需要重写接口的方法 public class UserServiceImpl 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 delete(int time) { } @Override public void add(int time) { } @Override public void query(int time) { } @Override public void update(int time) { } }

总结

最新回复(0)