java 继承问题

理解一:

子类会继承父类的所有属性和方法,至于能不能直接访问,那就是访问权限的问题了。

理解二:

从继承的概念来说,private和final不被继承
从内存的角度来说,父类的一切都被继承(从父类构造方法被调用就知道了,因为new一个对象,就会调用构造方法,子类被new的时候就会调用父类的构造方法,所以从内存的角度来说,子类拥有一个完整的父类)

访问权限:

下面用表格的形式来展示四种访问权限之间的异同点,这样会更加形象。表格如下所示:

 
同一个类


同一个包


不同包的子类


不同包的非子类


Private


     

Default



   

Protected




 

Public





参考:http://bbs.csdn.net/topics/380260428

时间: 2024-10-25 12:26:46

java 继承问题的相关文章

java继承和多态

java方法直接调用原理推测 有错误还望指正 当直接调用某对象的某方法时  会更具该对象获取到类信息对象   在从类信息对象中找到该方法 没找到 获取父类信息对象继续查找 找到了执行  jdk距离实现是通过反射还是其它? 如果按以上原理    以下情况解释不通 创建一子类对象  赋值给一父类指针变量  通过父类指针变量掉run方法   run方法在父类或子类中为私有  这种情况调用的是父类的run方法 并非子类的run方法 反射jar包 package extend; import org.ju

Java继承,多态,组合应用

继承:  面向对象的三大特征之一:    是类和类之间的一种拓展关系,是一种从一般到特殊的关系;    格式: sub   extends Super,  我们把sub称为子类或者拓展类, 把super称为父类或者基类(超类)   泛化: 把子类中的共性抽取到父类的过程; 特化: 子类在父类的基础之上,拓展自己特有的状态和特征;    Object: 是所有类的直接父类后间接父类;      class  Student{} 等价于  class  Student extends Object{

Java继承

public class Employee { public static String superStr = "SUPERSTR"; public String test() { return "SUPERTEST"; } public String test2() { return "SUPERTEST2"; } } public class Manager extends Employee { public static void main

Java继承改进

一.java继承改进 首先,多继承的缺点: 1.继承多个父类,父类中方法名相同,产生歧义 2.父类中方法同名,子类未覆盖,也会歧义 所以,java改进,类只能单继承,接口可以多继承 接口中只有抽象方法和静态常量 1.抽象方法只能在实现接口类中实现,调用时调用实现类的方法 2.静态变量在编译期间将确定调用关系了,存在冲突也会在编译的时候提示错误 ,而且引用变量一般直接使用类名或接口名,避免产生歧义. 1.1继承的初始化 继承关系是传递的.如,类C继承类B,类B继承类A,则类C既有从类B继承下来的变

Core Java (十一) Java 继承,类,超类和子类

Core Java (十一) Java 继承,类,超类和子类 标签: javaJavaJAVA 2013-01-22 17:08 1274人阅读 评论(0) 收藏 举报  分类: java(58) 读书笔记(46)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 继承关系 两个类之间存在三种关系: 依赖,uses-a,如果一个类的方法操纵另一个对象,我们就说一个类依赖于另一个类. 聚合(关联),has-a,一个对象包含另外一个对象,聚合关系意味着类A的对象包含类B的对象

JAVA继承时构造函数的问题

今天看到java继承部分时,关于构造函数是否继承以及如何使用时遇到了点问题,后来查找相关资料解决了. 下面是我个人的总结: 先创建一个父类,里面有两个构造函数: public class Jisuan { protected int a=4; //构造函数1 Jisuan() { System.out.println("父类的无参数构造函数"); } //构造函数2 Jisuan(int a) { System.out.println("父类的有参数构造函数");

java继承会犯的小错误

注意事项:阅读本文前应该先了解java的继承.本文定位为已经继承基础知识. 一:试图覆盖私有方法 先上代码 1 public class Father { 2 3 private void print() { 4 System.out.println("private print"); 5 } 6 7 public static void main(String[] args) { 8 Father father = new Son(); 9 father.print(); 10 }

java继承时候类的运行顺序问题

子类在继承父类后,创建子类对象会首先调用父类的构造函数,先运行父类的构造函数,然后再运行子类的构造函数,例如以下所看到的: class Father{ public Father(){ System.out.println("I am father"); } } public class Child extends Father{ public Child(){ System.out.println("I am child"); } public static vo

Java 继承中的构造方法

Java 继承中的构造方法 子类可以继承父类的构造方法,并遵循以下原则: 子类构造的构成中必须调用其基类的构造方法.    2.子类可以在自己的构造方法中使用super()调用基类的构造方法. 使用this()调用本类的另外的构造方法. 如果调用super(),必须写在子类构造方法的第一行. 3.如果子类的构造方法中没有显示的调用基类构造方法,则系统默认调用基类无参的构造方法.    4.如果子类的构造方法中既没有显示的调用基类的构造方法,而基类中又没有无参的构造方法,则编译会出错. 1 cla

Java继承篇总结

继承: 1)概念 把多个类中相同的成员给提取出来定义到一个独立的类中.然后让这多个类和该独立的类产生一个关系,这多个类就具备了这些内容.这个关系叫继承. 1.1)定义类时,通过"继承"一个现有的类,子类可以具有父类中的所有属性和方法. 2)Java中如何表示继承呢?格式是什么呢? A:用关键字extends表示 B:格式: class 子类名 extends 父类名 {} 2.1)案例 public class Animal { String name; String color; p