二、抽象类、抽象方法
Java中的对象是对现实世界的具象化,但是在现实世界中,某些类并不具备实例化的意义,因从可以定义为抽象类 抽象类: 1.创建抽象类的时候需要添加abstract的关键字 2.不能进行实例化,也就是不能new对象 3.抽象类中的某些方法需要子类进行丰富的实现,父类实现没有意义,此时可以将抽象类中的方法定义为抽象方法, 没有具体的实现,只包含方法名称,返回值,参数列表,访问修饰符 4.使用阿巴斯abstract关键字修饰的方法叫做抽象方法,可以不写方法的实现 5.子类在继承抽象父类的时候,必须要将父类中抽象方法进行实现或者将子类也定义成抽象类 6.有抽象方法的一定是抽象类,但是抽象类中不一定包含抽象方法
演示:
父类:
package wangKe.kejian.day03.abstracts;
/**
* @Auther: Shi Kaixuan
* @Date: 2022/3/7 - 03 - 07 - 10:05
* @Description: WangKe.kejian.day03.abstracts
* @version: 1.0
*/
public abstract class Pet {
//定义属性
private String name;
private int age;
//抽象方法
public abstract void Print();
//普通方法
public void show(){
System.out.println("Pet show... ...");
}
}
子类:
package wangKe.kejian.day03.abstracts;
/**
* @Auther: Shi Kaixuan
* @Date: 2022/3/7 - 03 - 07 - 10:09
* @Description: WangKe.kejian.day03.abstracts
* @version: 1.0
*/
public class Dog extends Pet {
private String gender;
@Override
public void Print() {
System.out.println("Dog print... ...");
}
}
测试类:
package wangKe.kejian.day03.abstracts;
/**
* @Auther: Shi Kaixuan
* @Date: 2022/3/7 - 03 - 07 - 10:12
* @Description: WangKe.kejian.day03.abstracts
* @version: 1.0
*/
public class PetTest {
public static void main(String[] args) {
Dog dog =new Dog();
dog.Print();
}
}
三、final
final的使用: final可以修饰变量: 表示变量的值不变 final可以修饰方法: 表示方法不可以被重写 final可以修饰类: 表示此类不可以被继承
演示:
父类:
package wangKe.kejian.day03.abstracts;
/**
* @Auther: Shi Kaixuan
* @Date: 2022/3/7 - 03 - 07 - 18:32
* @Description: wangKe.kejian.day03.abstracts
* @version: 1.0
*/
/*
*/
public class FinalDemo {
//定义一个final类型的属性
public static final int num =10;
//普通方法
public final void show(){
System.out.println("finalDemo... ...");
}
//main方法
public static void main(String[] args) {
// FinalDemo finalDemo =new FinalDemo();
// finalDemo.num=20;
// FinalDemo.num=20;
// num=20;
// System.out.println(num);
// final FinalDemo finalDemo =new FinalDemo();
// finalDemo.show();
// finalDemo =new FinalDemo();
}
}
子类:
package wangKe.kejian.day03.abstracts;
/**
* @Auther: Shi Kaixuan
* @Date: 2022/3/7 - 03 - 07 - 18:45
* @Description: wangKe.kejian.day03.abstracts
* @version: 1.0
*/
public class FinalSubClass extends FinalDemo{
}