敲代码+1day

本小白又又又敲代码的一天


是很期待学完第一遍再复习一遍然后赶紧做一个思维导图,在开始第二遍的学习。希望看见我文章的小可爱们(萌新小白们)可以和我一起努力呀!一起互相努力加油打气!!!
1.今天开始复习的是我们的“继承类”。继承,面向对象的三大特征之一。子类具有父类的属性和方法,子类中还可以有自己独有的部分。提高了代码的复用性和维护性。它增强两个类耦合性的同时削弱了子类的独立性。继承体现的是is a的关系。访问一个变量时遵循就近原则。
2.两个重要的关键字。this:只想调用该方法的对象。super:指向父类对象。
3.子类中所有的构造方法都会默认访问父类无参构造。(子类继承自父类会用到一些定义在父类中的数据,所以子类初始化之前一定要进行父类的初始化)
4.若父类中没有无参构造就需要们在子类的构造方法中利用super关键字调用父类有参构造。
5.当子类需要父类的功能,而自身又有独特的内容时,即可重写父类的方法。
6.私有方法不能被重写,父类的私有成员子类无法继承,子类方法的访问权限不能低于父类。
7.类支持单继承和多层继承。

写一个简单的继承。

package FuXi04;
/*
定义一个标准的学生类
 */
public class Student extends Person{


    public Student() {
    }

    public Student(String name, int age) {
        super(name,age);
    }

    //自定义有一个学习的方法
    public static void study(){
        System.out.println("我要学习");
    }
}

package FuXi04;
/*
定义的是一个标准的老师类
 */
public class Teacher extends Person{
    public Teacher() {
    }

    public Teacher(String name, int age) {

 1. List item

        super(name,age);
    }
    //自定义一个教书的方法
    public static void teach(){
        System.out.println("教书育人");
    }
}

package FuXi04;
/*
这是一个有关学生老师的父类
 */
public abstact class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

package FuXi04;
/*
这是一个继承的测试类
 */
public class Test {
    public static void main(String[] args) {
        Student s=new Student();
        s.setName("小新") ;
        s.setAge(15) ;
        System.out.println(s.getName() +","+s.getAge() );
        s.study();

        Student s1=new Student("小明",28);
        System.out.println(s1.getName() +","+s1.getAge() );
        s1.study();
        Teacher t=new Teacher();
        t.setName("zhang") ;
        t.setAge(36) ;
        System.out.println(t.getName() +","+t.getAge() );
        t.teach();
        Teacher t1=new Teacher("陈",34);
        System.out.println(t1.getName() +","+t1.getAge() );
        Teacher.teach();//我设置的是静态方法所以可以通过类名调用
    }
}

8.多态:同一个对象在不同时刻表现出来的不同形态。
9.多态的前提和体现:有继承/实现关系;有方法重写;有父类引用指向子类对象。
10.多态访问成员时编译和执行都看左边即父类;访问对象时编译看左边,执行看右边。
11.多态不能使用子类的特有功能。

写一个简单的多态

package FuXi04;
/*
写一个父类,年龄、姓名、get、set方法等,eat方法
 */
public abstract class Animal {
    private String name;
    private int age;

    public Animal() {
    }

    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public abstract void eat();
}

package FuXi04;
/*
写一个猫类继承动物类
 */
public class Cat extends Animal{
    //重写方法
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }

    public Cat() {
    }

    public Cat(String name, int age) {
        super(name, age);
    }
}

package FuXi04;

public class Dog extends Animal{
    @Override
    public void eat() {
        System.out.println("狗吃肉");
    }
    public Dog(){}

    public Dog(String name, int age) {
        super(name, age);
    }

}

package FuXi04;
/*
这是一个测试类
 */
public class Test1 {
    public static void main(String[] args) {
        Animal a=new Cat();//多态
        a.setName("加菲");
        a.setAge(7) ;
        System.out.println(a.getName() +","+a.getAge() );
        a.eat() ;
        //来一个向下转型
        Cat c=(Cat)a;//此时就可以调用父类中没有的方法
        Animal a1=new Dog("京巴",5);
        System.out.println(a1.getName() +","+a1.getAge() );
        a1.eat() ;
    }
}

12.抽象类中可以没有抽象方法,但抽象方法必须定义在抽象类中。抽象方法没有方法体。
13.抽象类的子类要么是抽象类,要么重写父类所有抽象方法。
14.接口是对行为的一种抽象。用关键字interface修饰,类实现接口用implements,
15.接口中只能定义常量。默认修饰符public static final
16.成员方法只能是抽象方法,默认修饰符public abstract
17.接口没有构造方法。
明天再写啦,今天好累…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值