例子1
package com.atguigu.java;
public class AbstractTest {
public static void main(String[] args) {
//一旦Person类抽象了,就不可实例化
Person p1 = new Person();
p1.eat();
}
}
abstract class Person{
String name;
int age;
public Person(){
}
public Person(String name,int age){
this.name=name;
this.age=age;
}
public void eat(){
System.out.println("人吃饭");
}
public void walk(){
System.out.println("人走路");
}
}
class Student extends Person{
}
例子2
package com.atguigu.java;
public class AbstractTest {
public static void main(String[] args) {
//一旦Person类抽象了,就不可实例化
Person p1 = new Person();
p1.eat();
}
}
abstract class Person{
String name;
int age;
public Person(){
}
public Person(String name,int age){
this.name=name;
this.age=age;
}
public void eat(){
System.out.println("人吃饭");
}
public void walk(){
System.out.println("人走路");
}
}
class Student extends Person{
//虽然Person抽象了,但在子类中可以将Person实例化用
public Student(String name,int age){
super(name,age);
}
}
例子3
package com.atguigu.java;
public class AbstractTest {
public static void main(String[] args) {
//一旦Person类抽象了,就不可实例化
Person p1 = new Person();
p1.eat();
}
}
abstract class Person{
String name;
int age;
public Person(){
}
public Person(String name,int age){
this.name=name;
this.age=age;
}
//抽象方法
public abstract void eat();
public void walk(){
System.out.println("人走路");
}
}
abstract class Student extends Person{
//虽然Person抽象了,但在子类中可以将Person实例化用
public Student(String name,int age){
super(name,age);
}
//现在46行代码错了,有两种方法:1.抽象类中的方法在子类中进行重写 2.将子类也设置为抽象类,详见46
// public void eat(){
// System.out.println("学生多吃有营养的食物");
// }
}