Java之面向对象二(static,抽象类,接口)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java之面向对象二(static,抽象类,接口),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2436字,纯文字阅读大概需要4分钟。
内容图文
![Java之面向对象二(static,抽象类,接口)](/upload/InfoBanner/zyjiaocheng/602/1ddfb720322e469abdf23b9cb2599f48.jpg)
static
1、静态属性:类名.属性名,非静态属性必须建立一个实例调用
2、静态方法:能够调用静态方法,不能调用普通方法(必须实例),但普通方法能够调用静态方法(原理:类加载机制)
3、静态代码块:static{},静态代码块虽类创建一起执行,且只执行一次,普通代码块需要实例化时被使用
public Person(){
System.out.println("构造方法");
}
{
System.out.println("普通/匿名代码块");
}
static{
System.out.println("静态代码块");
}
public static void main(String[] args) {
//main()中空白时,会“静态代码块”
//main()中实例化Person时
Person person = new Person();
/*
输出顺序:
静态代码块
普通/匿名代码块
构造方法
*/
}
执行顺序
(1)静态代码块,匿名代码块,构造方法
(2)父类中的匿名代码块、父类的构造方法、子类的匿名代码块、子类的构造方法
4、静态导入包
import java.lang.Math.random 提示错误
import static java.lang.Math.random 编译通过
final
final可以修饰变量、方法、类
1、定义为final的类不能被继承,String类被定义为final,无法被继承
2、final定义的方法不能被重写
3、final修饰的变量不允许被修改(不允许重新赋值),对于引用变量也是如此,永远指向一个对象
4、final修饰实例变量
class User{
final int age; //报错
final int age = 10; //通过
//第一句报错,因为系统若赋予默认值则无法再改变,成为无效,所以系统要求final修饰的实例变量必须手动赋值
final int v;
public User(){
this.v = 10;
} //通过
//在系统赋值前赋值,所以通过编译
//实例变量是在构造方法执行的过程中被赋值(new的过程中)
}
5、final不控制访问权限,即调用问题
抽象类
public abstract class Person { //抽象类
public abstract void dosth(); //抽象方法,只有方法名,没有实现
}
抽象类的本质是约束
1、抽象类的所有方法,它的子类都必须实现,除非子类也是抽象类
2、抽象类不能new,只能靠子类实现
3、抽象类中可以有普通方法,但抽象方法必须在抽象类中
接口
接口只有规范,不能写方法,可以看作是更高标准的抽象类;
面向接口编程:先根据需求给出接口,然后编写方法实现
public interface InterfaceTest {
void run(); //默认是public abstract void run();
}
接口都需要有实现类
public class UserServiceImpl implements InterfaceTest{
//可自动生成
@Override
public void run() {
}
}
1、可以implements多个接口,实现多继承
2、public abstract(方法) / public static final(常量)
3、接口不是类,没有构造方法
内部类
一个Java类中可以有多个class类,但只能有一个public class类
方法中定义的类称为局部内部类
已知:Inner类为Outer类的内部类
实例化内部类
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
(未完待续……)
内容总结
以上是互联网集市为您收集整理的Java之面向对象二(static,抽象类,接口)全部内容,希望文章能够帮你解决Java之面向对象二(static,抽象类,接口)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。