Java 多态 父类和子类方法的访问控制权限

Java 多态 父类和子类方法的访问控制权限

@author ixenos

父类和子类方法的访问控制权限



继承是为了扩展类的功能,而这种扩展显然就是对一个原始类的扩展,目的还是向上转型来调用,所以这就是一个对象多态的问题。

既然多态,那么访问控制权限就要让父类也能访问。

也就是说,子类重写方法时不能使该方法拥有比父类更严格的访问控制权限。

否则违背了多态,导致向上类型转换后,使用父类变量无法调用该子类私有方法

时间: 2024-11-16 13:53:38

Java 多态 父类和子类方法的访问控制权限的相关文章

java中父类与子类的关系以及使用

java中父类与子类的关系以及使用 在java中规定:一个父类可以有多个子类,但是一个子类只能有一个父类.子类可以通过extends关键字来继承父类.做个比较通俗的比喻,就像一个父亲可以有多个亲孩子,但是一个孩子只能有一个亲生父亲. 1.继承以及重写:子类继承父类是对父类属性和方法的全面继承,同时子类在继承了父类的方法后,可对父类的方法进行重写. public class Son extends Fat{ private int b; private String h1; public void

java中父类与子类, 不同的两个类中的因为构造函数由于递归调用导致栈溢出问题

1 /* 2 对于类中对成员变量的初始化和代码块中的代码全部都挪到了构造函数中, 3 并且是按照java源文件的初始化顺序依次对成员变量进行初始化的,而原构造函数中的代码则移到了构造函数的最后执行 4 */ 5 import static java.lang.System.out; 6 7 public class PersonDemo 8 { 9 public static void main(String[] args) 10 { 11 //*********测试父类与子类之间的循环调用的问

多态&&父类调用子类特有的方法

/* 多态 1.没有继承就没有多态 2.代码的体现:父类类型的指针指向子类对象 3.好处:如果函数\方法参数使用的是父类对象,可以传入父类.子类对象 4.局限性: 1>父类类型的变量,不能直接调用子类特有的方法,必须强转为子类类型变量后,才能直接调用子类特有的方法 Animal *aa = [Cat new]; // Animal是父类 Cat是子类 Cat *dd = (Cat *)aa;  // 强制转换为子类 [dd run]; // run是子类Cat特有的方法 */

在Java当中父类和子类之间的强制转换

接下来的三点是我从百度知道上引用来的.嘻嘻~,感觉不错. 1.从对象的内存角度来理解.假设现在有一个父类Father,它里面的变量需要占用1M内存.有一个它的子类Son,里面的变量需要占用0.5M内存.现在通过代码来看看内存的分配情况:2.f = new Father();//系统将分配1M内存.Son s = new Son();//系统将分配1.5M内存!因为子类中有一个隐藏的引用super会指向父类实例,所以在实例化子类之前会先实例化一个父类,也就是说会先执行父类的构造函数.由于s中包含了

java多态动手动脑

实验任务一:多态实现ATM工作原理 1)源代码: package demo; import java.util.Scanner; class A{ String name; String date; String mima; int yu; String kahao; public A(String name,String date,String mima,int yu,String kahao) { this.name=name; this.date=date; this.mima=mima;

【转】java多态详解

1.        Java中除了static和final方法外,其他所有的方法都是运行时绑定的.private方法都被隐式指定为final的,因此final的方法不会在运行时绑定.当在派生类中重写基类中static.final.或private方法时,实质上是创建了一个新的方法. 2.在派生类中,对于基类中的private方法,最好采用不同的名字. 3.包含抽象方法的类叫做抽象类.注意定义里面包含这样的意思,只要类中包含一个抽象方法,该类就是抽象类.抽象类在派生中就是作为基类的角色,为不同的子

Java访问控制权限

Java的访问控制权限相比于C++等语言可能稍微复杂一点,不过也不难理解.Java的访问控制权限分为两块--"类或接口的访问控制权限"与"变量和方法的访问控制权限". 1.类或接口的访问控制权限     类或接口的访问控制权限是指能不能用该类建立对象,接口能不能被实现等等.能够修饰类或接口的访问控制权限的修饰符(modifier)只有两个--public和friendly.不过,值得一说的是friendly并不是Java的关键字,它只是一个习惯叫法,指的是"

JAVA多态需要注意的一些问题

public class MainTest { static class A { public int i; public void f() { System.out.println("AAAAA"); } } static class B extends A { public void f() { System.out.println("BBBBB"); } public void g() { System.out.println("GGGG"

c++与java中子类中调用父类成员的方法

1 java中: 2 import java.util.Scanner; 3 public class ClassTest{ 4 public static void main(String args[]){ 5 child ch=new child(2); 6 parent p=ch; 7 p.print(); 8 //p.print2();//调用错误,父类中没有改成员方法,该方法只属于子类! 9 } 10 } 11 12 class parent{ 13 int xx; 14 parent