面向对象——final——抽象类

1.Final 关键字:

final 为最终的意思,使用final声明一个属性,就是常量,常量的命名规则建议使用全大写,常量必须在定义时或在构造器中初始化(一般在定义时就会赋值);

一般写常量时都会去写一个常量类,如

 

 想要输出访问时,直接用类名访问

 

 输出结果:

 

 2、使用final声明的方法,只能被子类继承不能被重写,表示为最终方法

 3、使用final声明的类,不能被继承,表示为最终类

 

抽象类的基本概念:

很多具有相同特征和行为的对象可以抽象为一个类,很多具有相同特征和行为的类可以抽象为一个抽象类

抽象类使用abstract 关键字声明的类叫抽象类

抽象类一般都是用继承,来实现,因为抽象方法是不能实现的,所以我们继承抽象类的具体类必须实现所有抽象方法  如:

//定义一个抽象类
abstract class Animal{
    //抽象方法
    public abstract void move();//方法的声明,抽象方法只有声明,没有实现
    
}

abstract class Person extends Animal{
    public abstract void eat();
}
//继承抽象类的具体类必须实现所有抽象方法
class Man extends Person{
    public void move() {
        System.out.println("我是男人,我爱跑步");
    }
    public void eat() {
        System.out.println("我是男人,我爱吃肉");
    }
}

class Women extends Person{


    public void eat() {
        System.out.println("我是女人,我喜欢吃饭");
    }

    public void move() {
        System.out.println("我是女人,我喜欢运动");
    }
    
}

然后再调用Man 和Women 的eat move方法就可以输出

抽象类小结:
  抽象类:用abstract关键字声明的类成为抽象类
  很多具有相同特征和行为的对象可以抽象为一个类,很多具有相同特征和行为的类可以抽象为一个抽象类
   
    抽象类的特点:
    1、抽象类可以没有抽象方法,有抽象方法的类必须是抽象类
    2、非抽象类继承抽象类必须实现所有抽象方法
    3、抽象类可以继承抽象类,可以不实现父类抽象方法。
    4、抽象类可以有方法实现和属性
    5、抽象类不能被实例化
    6、抽象类不能声明为final
    7、抽象类可以有构造方法


 

posted @ 2020-04-30 12:33  老智障  阅读(284)  评论(0编辑  收藏  举报