final用在局部变量之前,意味着该局部变量只能被赋值一次
final修饰的类,不可被继承(API中多个,如String)
final修饰成员属性时必须显示的赋值,且只能赋值一次(包括引用类型)
final修饰的成员属性是引用类型,说明该属性的地址不能被改变,但其中的值只要不被final修饰都能被改变
class Animal{
int id;
public Animal(){
}
public Animal(int id){
this.id = id;
}
}
class Person{
final Dog d;
public Person(){
this.d = new Dog();
}
public void print(){
d.setType("wangcai");
System.out.println(d.setType());
}
}
class Dog extends Animal{
private String type;
public Dog(){
}
public Dog(String type){
this.type = type;
}
public void setType(String type){
this.type = type;
}
public String getType(){
return this.type;
}
}
class main{
public static void main(String args[]){
Person p = new Person();
Dog d = new Dog();
Dog d2 = new Dog();
p.print();
}
}
抽象类存在的意义在于多态父类型引用指向子类型对象
代码面向抽象而不面向具体
abstr修饰为抽象类,没有实例化对象,不能“new”,只为其他类提供继承
抽象类一定有抽象方法,抽象方法没有方法体