zoukankan      html  css  js  c++  java
  • JAVA核心技术--继承(1)

    1、继承:向上追溯,对同一批类的抽象,延续和扩展父类的一切信息!

               1)关键字:extends      例如,父类是Animal,子类是Dog;   eg: public class Dog extends Animal

        2)父类也称超类,可用super引用

        3)子类也称派生类:必须继承父类,可以继承父类的属性和方法  

          重写:在子类中,方法名、形参、个数、类型、顺序相同!     关键字:@Override

          重载:在同一个类中,名称相同的,  形参个数、类型、顺序不同!   

           注意:继承父类的方法时,因父类不满足要求了,我们需要重写父类的方法。

          eg: @Override
               public void eat() {
                  System.out.println("猫吃鱼");
              }

        4)注意事项:属性不能被重写!
                                  私有方法、静态方法、final方法 不能被重写!
                                  重写前提需要继承!

    2、继承的好处:

          重用代码、避免重复、重写方法、新曾方法、提高了效率!

    3、Object类

               是所有类的祖先,任何一个类都直接或者是间接的继承了Object!
               如果一个类没有显示extends任何类,默认的继承Object类!

    4、例子:功能:Aniaml类,Dog类,Cat类

    /*
    *Animal 类
    */

    public
    class Animal extends Object{ //颜色 String color; //年龄 int age; public void eat(){ System.out.println("动物吃饭"); } public void sleep(){ System.out.println("动物睡觉"); } public void introduce(){ System.out.println("自我介绍:颜色:"+color+",age:"+age); } @Override public String toString() { return "动物的颜色:"+color+",年龄:"+age; } }
    //Dog类
    
    public class Dog extends Animal{
        //狗自己特有的属性
        String name;
        String type;
        
        //特有的看门的方法 
        public void guard(){
            System.out.println("小狗"+name+"在看门,是人类的好朋友");
        }
        
        @Override
        public void eat() {
            System.out.println("小狗"+name+"在吃饭");
        }
        @Override
        public void sleep() {
            System.out.println("小狗"+name+"在睡觉");
        }
        
        @Override
        public void introduce() {
            System.out.println("dog:color:"+color+",age:"+age+",name"+name+",type:"+type);
        }
        @Override
        public String toString() {
            return "狗的名称:"+name+",年龄;"+age+"岁,种类"+type+",颜色:"+color;
        }
    }
    //Cat类
    
    
    public class Cat extends Animal{
        String name;
        String sex;
        @Override
        public void eat() {
            System.out.println("猫吃鱼");
        }
        
        @Override
        public void sleep() {
            System.out.println("猫看不见它睡觉");
        }
        
        @Override
        public void introduce() {
            System.out.println(name+"喵喵的叫");
        }
        @Override
        public String toString() {
            return "猫的名称:"+name+",年龄:"+age+"岁,性别"+sex+",颜色:"+color;
        }
        
    }
    //TestAnimal
    
    public class TestAnimal {
        public static void main(String[] args) {
            Animal an =new Animal();
            an.age=2;
            an.color="yellow";
            an.eat();
            an.sleep();
            an.introduce();
            System.out.println(an.toString());
            System.out.println("---------------");
            
            
            Dog dog =new Dog();
            dog.age=3;
            dog.color="black and blue";
            dog.name="旺财";
            dog.type="拉布拉多";
            dog.eat();
            dog.sleep();
            dog.introduce();
            dog.guard();
            System.out.println(dog.toString());
            System.out.println("---------------");
            
            
            Cat cat =new Cat();
            cat.age=2;//父类的属性
            cat.color="白色";//父类的属性
            cat.name="图图";//孩子自己独有的
            cat.sex="母";//孩子自己独有的
            cat.eat();//重写了
            cat.sleep();//重写了
            cat.introduce();//重写了
            System.out.println(cat);
        }
        
    }

     

            

  • 相关阅读:
    Matlab怎么修改显示数值格式/精度/小数位数
    java matlab 混合编程 Failed to find the required library mclmcrrt9_2.dll on java.library.path.
    Java学习路线图
    解决Java getResource 路径中含有中文的情况
    深入jar包:从jar包中读取资源文件getResourceAsStream
    Matlab调用Java类
    java调用matlab绘图
    轮盘赌算法
    matlab中cumsum函数
    matlab运行出现“变量似乎会随着迭代次数改变而变化,请预分配内存,以提高运行速度”问题
  • 原文地址:https://www.cnblogs.com/lingtiaoti/p/6160307.html
Copyright © 2011-2022 走看看