2020/10/24 关于面向对象的一些有的没的

被final修饰的类是不能再被继承

final关键字提高了性能。jvm和java应用都会缓存final变量。

final变量可以在安全的多线程环境下进行共享,而不需要额外的同步开销。

使用final关键字,jvm会对变量,方法及类进行优化。

 

静态成员是属于类的,因此对其访问不需要创建对象,可以使用<类名> . <静态成员名>的语法调用静态成员变量。

非静态方法可以调用静态方法,反之,静态方法不可以调用非静态方法

static修饰的变量为类属性,全局唯一,所有该类的对象操作都是同一个属性;非静态修饰的变量为对象的属性,不共享。

 

java不允许多继承

构造函数无法被子类继承,子类的构造函数如果没有手动调用父类的构造函数,则会默认隐式调用super(),即父类无参函数。

构造方法的特征:与类同名,无返回值。

然后super关键字必须定义在子类构造方法的第一条语句,super与this不能出现在同一个构造函数中。

 

abstract抽象类

抽象方法不能有方法主体。格式如下:

abstract void xxx();

抽象类不能被实例化,因为抽象类中的方法未具体话,是一种不完整的类,所以直接实例化没什么意义。

一旦类中定义了抽象方法,那该类必须声明为abstrac类。

父类是抽象类,那么派生出新类必须实现父类中的抽象方法,否则也必须定义为抽象类

 

输出B类的test()方法

class A {
    public void test() {
            System.out.println("A类的test()方法");
    }
}
class B extends A {
    public void test() {
        System.out.println("B类的test()方法");
    }
    public static void main(String args[]) {
         A a = new B(); a.test();  //父类引用指向子类对象

         B b = new B(); b.test();
     }
}

 

 

(数组的值是放在堆里,引用在栈里)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值