// 父类
public class Animal {
private int age;
private String color;
//构造方法 (方法名和类名相同)
public Animal(String color){
System.out.println("creat a animal...");
}
public Animal(){
System.out.println("动物。。。");
}
// 在重写时子类中的访问修饰符可以大于或等于父类中的访问修饰符
void eat(){
System.out.println("动物可以吃饭。。");
}
void say(){}
}
// 子类
public class Cat extends Animal{ //Java中通过extends关键字来实现继承
public char sex;
public Cat(){
super(""); // 构造方法中第一行调用父类的有参的构造方法
System.out.println("");
}
public Cat(int age){
this(); //调用当前对象的构造方法
say(); // 调用当前对象的普通方法
eat();
this.sex = '女'; //给当前属性赋值
}
@Override
public void eat() {
System.out.println("我爱吃鱼。。。");
super.say(); // 调用父类中的普通方法 用super
}
@Override
void say() {
super.say();
}
}
//测试
public class CatTest {
public static void main(String[] args) {
Cat cat = new Cat(1); //有参数的构造方法
cat.say();
cat.equals("");
}
}
/// 输出 我爱吃鱼。。。
//子类
public class Fish extends Animal{
public int age;
public Fish(){
super(); // 继承父类中无参数的构造方法
System.out.println("鱼。。。");
}
}
//测试
public class FishTest {
public static void main(String[] args) {
Fish fish = new Fish(); //无参数的构造方法
fish.age = 12;
System.out.println(fish.age);
}
}
输入 动物。。。 \n 鱼。。。 \n 12