Java--抽象
抽象的概念
如果父类当中的方法不确定如何进行{}方法体的实现,那么这就应该是一个抽象方法
抽象方法和抽象类的格式
抽象方法:就是加上abstract关键字,然后去掉大括号,直接分号结束.
抽象类:抽象方法所在的类,必须是抽象类才行,在class之前写上abstract即可.
代码示例
public abstract class Demo {
public abstract void method1();//这是一个抽象方法,抽象方法所在的类必须为抽象类
public void method2() {//普通成员方法
System.out.println("我是一个普通的成员方法");
}
}
抽象方法和抽象方法的使用
-
不能直接创建new抽象对象
-
必须用一个子类来继承抽象父类
-
子类必须覆盖重写抽象方法的abstract关键字,然后补上方法体的大括号
-
创建子类对象进行使用
代码示例
抽象类
public abstract class Animal {
public abstract void eat();//创建抽象类
}
子类
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("猫喜欢吃鱼");
}
}
Main方法
public class Main {
public static void main(String[] args) {
Cat one = new Cat();
one.eat();
// Animal two = new Animal();抽象类不能直接创建对象
}
}
抽象方法和抽象类的注意事项
- 抽象类不能直接创建对象
- 抽象类中可以有构造方法,是提供给子类创建对象时,初始化父类成员使用的
- 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类
- 抽象类的子类,必须重写父类中的所有的抽象方法
代码示例
Animal类
public abstract class Animal {
public Animal() {
System.out.println("父类构造方法执行!!");
}
public abstract void eat();
public abstract void sleep();
}
Dog类
public abstract class Dog extends Animal{
public Dog()
{
System.out.println("子类构造方法执行");
}
@Override
public void eat() {
System.out.println("狗吃骨头");
}
}
Dog2ha类
public class Dog2ha extends Dog{
@Override
public void sleep() {
System.out.println("哈哈哈----");
}
}
GoldDog类
public class GoldDog extends Dog {
@Override
public void sleep() {
System.out.println("呼呼呼----");
}
}
Main类
public class Main {
public static void main(String[] args) {
GoldDog one = new GoldDog();
one.eat();
one.sleep();
System.out.println("==========");
Dog2ha two = new Dog2ha();
two.eat();
two.sleep();
}
}
标签:Java,--,void,abstract,class,抽象,抽象类,public
From: https://www.cnblogs.com/harper886/p/17376247.html