44.final关键字(笔试中常常考到)this
(1)若是final修饰在变量上这个变量不能被修改继承
(2)final能够修饰在属性上,要么直接给初始值,要么在构造器中给初始化,若是存在多个构造器,每个构造器里面要有final这个属性的初始化class
(3)final修饰在方法上不能被覆写变量
(4)final能够修饰在类上,若是一个类被final修饰就不能被继承语法
class Person{
String name;
//final修饰变量变量不能被改变,修饰属性要给初始值
final int age=10;
//修饰属性没有给初始值的能够在构造器中给初始化,若是存在多个构造器,每个构造器里面要有final这个属性的初始化
final int height;
public Person(){
this.height=175;
}
public Person(String name){
this.name=name;
this.height=175;
}
//final修饰方法,这个方法不能被覆写
final public void run(){
System.out.println(name+"在跑步");
}
}
//final修饰类,这个类不能被继承
final class Child{
}
class Student extends Person{
public static void main(String[] args){
Student s=new Student();
s.run();
}
}方法
45.抽象类笔试
当多个具体的实体类存在着共同的行为,可是有不一样的表现,咱们在父类继承过程当中,父类的方法具体实现不肯定,可是能肯定的是他们都有这种行为,咱们把这种行为方法做为抽象方法static
语法:new
abstract class 类名{实例化
属性
方法
}
注意:抽象类中能够没有抽象方法,可是抽象方法的类必定是抽象类
特色:(1)抽象类不能实例化,只能被继承,而后实例化子类
(2)继承了抽象类的非抽象类必须实现抽象类全部的抽象方法
(3)抽象类也能够继承抽象类,这样不须要实现父抽象类的方法,可是继承了这个子抽象类的非抽象类必须实现父子抽象类的全部的抽象方法
(4)抽象类的抽象方法不能和private、final、static共存
abstract class Person1{ String name; public Person1(){ } public Person1(String name){ this.name=name; } //抽象类里面不必定有抽象方法,可是有抽象方法的类必须是抽象类,并且抽象方法不能有主体 public abstract void run(); } abstract class Child1 extends Person1{ public abstract void sleep(); } class Student1 extends Child1{ //抽象方法必须在继承的非抽象子类中所有实现 public void run(){ System.out.println("在跑步"); } public void sleep(){ System.out.println("在睡觉"); } public static void main(String[] args){ Student1 s=new Student1(); s.sleep(); s.run(); } }