package com.use.myextends; import com.use.myextends.exercise.Student; public class MyExtendes { public static void main(String[] args) { // Student student = new Student(); // 不同包下的类,默认和protected级别不能直接访问 // System.out.println(student.name + student.age + student.score); // Sub sub = new Sub(); // 在创建子类对象时 默认会调用父类中的无参构造器 // sub.subInfo(); System.out.println("======第2个对象======"); Sub sub01 = new Sub(1); // sub继承父类的父类 sub01.topbaseFunc(); } } class MyStudent extends Student{ //不同包下的子类 默认级别不能直接访问 protected可访问 public void showInfo(){ // System.out.println(name+age+score); } }
package com.use.myextends; public class Sub extends base{ public Sub(int n1){ // 若父类中不存在无参构造器,需要用 super(参数) 来显式调用父类中指定的构造器 super(n1); System.out.println("子类中的Sub(int n1)构造器"); } // public Sub(){ super(); // // 创建对象时,会默认使用此函数 调用父类中的无参构造器,此函数无需显式调用,系统编译时默认调用 // System.out.println("子类中的Sub()构造器"); // } public void subInfo(){ test100(); test200(); test300(); testPrivate(); // test400(); // 私有属性/方法不能在子类中直接调用 } }
package com.use.myextends; public class base extends Topbase{ public int n1=100; protected int n2 = 200; int n3 = 300; private int n4 = 400; public base(int n1){ //父类中的无参构造器 System.out.println("父类中的base(int n1)构造器"); } // public base(){ //父类中的无参构造器 // System.out.println("父类中的base()构造器"); // } // 父类中的私有属性&方法 需要通过父类提供的方法访问 public void testPrivate(){ System.out.println(n4); test400(); } public void test100(){ System.out.println("test100()....."); } protected void test200(){ System.out.println("test200()....."); } void test300(){ System.out.println("test300()....."); } private void test400(){ System.out.println("test400()....."); } }
package com.use.myextends; public class Topbase { public void topbaseFunc(){ System.out.println("topbaseFunc() 被调用"); } }
package com.use.myextends; public class ExtendsExercise { public static void main(String[] args) { B b = new B(); } } class A{ A(){System.out.println("a");} A(String name){System.out.println("a name");} } class B extends A{ B(){this("abc");System.out.println("b");}; // this("abc") 会调用下方构造器,构造器中默认有 super() 函数,会调到父类A中的无参构造器 B(String name){System.out.println("b name");} }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)