java 深度解析面向对象继承

深度解析面向对象继承

继承的使用要点
1.父类也称作超类、基类、派生类。
2.java中只有单继承,没有c语言那样的多继承。多继承会引起混乱,是的继承连过于复杂系统难以维护。但是java有多重继承,多重继承比如A类继承B类,B类继承了C类。继承的好处提高了类之间的耦合性,缺点是提高耦合度就会造成代码之间的联系,不利于维护!
3.java类没有多继承,但是接口有多继承。
4.。子类继承父类可以得到父类所有的属性和方法,(除了父类的构造方法)但不见得能直接访问,比如(父类的私有属性和方法)
5.如果定义一个类,没有调用extends则它的父类是,java.lang.Object。
in
6.stanceof是一个二元运算符,左边是对象,右边是类;当对象是右面类或子类所有创建对象时,返回true;否则,返回false。
7.方法重写override-返回值的类型问题:
方法重写需要符合下面三个要点
①方法名和形参列表相同
②返回值类型和声明异常类型要,子类小于等于父类
③访问权限子类大于父类
继承关键字
extends关键字
继承可以使用 extends 和 implements 这两个关键字来实现继承,而且所有的类都是继承于 java.lang.Object,当一个类没有继承的两个关键字,则默认继承object(这个类在 java.lang 包中,所以不需要 import)祖先类。

 class Person {
 }
 class Student extends Person{
 }

implements关键字
使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。

public interface A{
} 
public interface B{
}
public interface C implements A,B{
}

super 与 this 关键字
super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
this关键字:指向自己的引用。

class Person {
    String name;
    int age;
    public void study() {
        System.out.println("好好学习");
    }
    public void show(){
        System.out.println("名字: "+name+"\t年龄: "+age);
    }
}
class Student extends Person {
    int height;//extends继承父类的 属性和方法

    public void study(){
        System.out.println();
    }
    public void show(){
        System.out.println("姓名: "+name+"\t年龄: "+age+"\t身高: "+height);
    }
    public void test(){
        this.show();//this 调用自己的方法
        super.show();//调用父类的方法
    }

}
public class jc {
    public static void main(String[] args) {
        Student st = new Student();
        st.age=25;
        st.name="少囧";
        st.height=175;
        st.show();
        st.test();
    }
}
输出:
姓名: 少囧	年龄: 25	身高: 175
姓名: 少囧	年龄: 25	身高: 175
名字: 少囧	年龄: 25

final关键字
声明类:
final class 类名 {//类体}
final声明父类,那么子类就不能用extends继承父类
声明方法:
修饰符(public/private/default/protected) final 返回值类型 方法名(){//方法体}
final 声明父类里的方法时,在子类里就不能重写这个方法

注:实例变量也可以被定义为 final,被定义为 final 的变量不能被修改。被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final

发布了33 篇原创文章 · 获赞 0 · 访问量 259

猜你喜欢

转载自blog.csdn.net/fyyxc/article/details/103525898